2017-09-07 2 views
1

Ich habe einen großen Datenrahmen, den ich versuche, Subset nur Spaltenindizes verwenden. Ich benutze den folgenden Code:Python-Subset a df mit Spalten-Indizes

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

Der Code ist ziemlich selbsterklärend. Ich versuche, das df zu unterteilen, indem ich die Spalten 3, 21 bis 28 und so weiter führe. Ich erhalte jedoch den folgenden Fehler:

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

Was fehlt mir?

Antwort

1

Verwendung numpy.r_[...]:

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

Demo:

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

Danke. Hat super funktioniert! –

+0

@continuous_learner, Sie sind herzlich willkommen! – MaxU

Verwandte Themen