2017-09-07 1 views
1

J'ai une grande base de données que j'essaie de sous-ensembles en utilisant uniquement des index de colonne. J'utilise le code suivant:Python Sous-ensemble a df utilisant des index de colonnes

df = df.ix[:, [3,21:28,30:34,36:57,61:64,67:]] 

Le code est assez explicite. J'essaye de sous-classer le df en gardant les colonnes 3, 21 à 28 et ainsi de suite. Cependant, j'obtiens l'erreur suivante:

File "<ipython-input-44-3108b602b220>", line 1 
    df = df.ix[:, [3,21:28,30:34,36:57,61:64,67:]] 
        ^
    SyntaxError: invalid syntax 

Qu'est-ce qui me manque?

Répondre

1

Utilisation numpy.r_[...]:

df = df.iloc[:, np.r_[3,21:28,30:34,36:57,61:64,67:df.shape[1]]] 

Démo:

In [39]: df = pd.DataFrame(np.random.randint(5, size=(2, 100))) 

In [40]: df 
Out[40]: 
    0 1 2 3 4 5 6 7 8 9 ... 90 91 92 93 94 95 96 97 98 99 
0 3 1 0 3 2 4 1 2 1 3 ... 2 1 4 2 1 2 1 3 3 4 
1 0 2 4 1 1 1 0 0 3 4 ... 4 4 0 3 2 3 0 2 0 1 

[2 rows x 100 columns] 

In [41]: df.iloc[:, np.r_[3,21:28,30:34,36:57,61:64,67:df.shape[1]]] 
Out[41]: 
    3 21 22 23 24 25 26 27 30 31 ... 90 91 92 93 94 95 96 97 98 99 
0 3 4 1 2 0 3 0 3 2 2 ... 2 1 4 2 1 2 1 3 3 4 
1 1 1 0 2 1 4 4 4 1 3 ... 4 4 0 3 2 3 0 2 0 1 

[2 rows x 69 columns] 
+0

Merci. J'ai bien travaillé! –

+0

@continuous_learner, vous êtes les bienvenus! – MaxU