AttributeError: Das Objekt 'DataFrame' hat kein Attribut 'ix'.

9

Ich erhalte die obige Fehlermeldung, wenn ich versuche, das .ix-Attribut eines Pandas-Datenrahmens zum Herausziehen einer Spalte zu verwenden, z. B. df.ix [:, 'col_header']. Das Skript funktionierte ab heute Morgen, aber heute Nachmittag habe ich es in einer neuen Linux-Umgebung mit einer Neuinstallation von Pandas ausgeführt. Hat jemand diesen Fehler schon einmal gesehen? Ich habe hier und anderswo gesucht, kann es aber nicht finden.

Diarmid Roberts
quelle
3
Sie haben eine ältere Version von Pandas ausgeführt. Sieh dir das an? stackoverflow.com/questions/43838999/pandas-replacement-for-ix
StupidWolf

Antworten:

11

Eine Neuinstallation heute (30. Januar 2020) würde installiert pd.__version__ == '1.0.0'. Damit sind viele veraltete Funktionen entfernt .

Series.ix und DataFrame.ix (GH26438) wurden entfernt.

ALollz
quelle
7

Versuchen df.iloc[:, 'col_header']

.ix ist veraltet

Dr_Hope
quelle
2

hatte das gleiche Problem mit Pandas 1.0.0, das hat bei mir funktioniert

Öffnen Sie dann die Anaconda-Eingabeaufforderung (cmd) als Administrator

conda install pandas == 0.25.1

Ihre neuere Pandas-Version wird von einer älteren überschrieben!

Eric Stralsund
quelle
1

Ändern Sie ix durch .loc, es wird korrekt funktionieren.

Abidi Mohamed
quelle
0

Vielen Dank.

Im Nachhinein musste ich wahrscheinlich .ix nicht verwenden, da df ['col_header'] für mich funktioniert und ordentlicher ist.

Diarmid Roberts
quelle
0

eine Spalte:

df[['sepal width']]

zwei Spalten:

df[['sepal width','petal width']]

spezielle Spalten (ausgewählte Spalte enthält 'Länge'):

df[[c for c in df.columns if 'length' in c]]
HelloNewWorld
quelle