Richtige Art und Weise zu verwenden iloc in Pandas
Habe ich Folgendes dataframe df:
print(df)
Food Taste
0 Apple NaN
1 Banana NaN
2 Candy NaN
3 Milk NaN
4 Bread NaN
5 Strawberry NaN
Ich versuche, ersetzen von Werten in einer Reihe von Zeilen mit iloc:
df.Taste.iloc[0:2] = 'good'
df.Taste.iloc[2:6] = 'bad'
Aber es gab die folgende SettingWithCopyWarning Nachricht:
SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame
So, ich fand diese Stackoverflow-Seite und versuchte dies:
df.iloc[0:2, 'Taste'] = 'good'
df.iloc[2:6, 'Taste'] = 'bad'
Leider folgenden Fehler zurückgegeben:
ValueError: Can only index by location with a [integer, integer slice (START point is INCLUDED, END point is EXCLUDED), listlike of integers, boolean array]
Was wäre die richtige Art und Weise zu verwenden iloc in dieser situation? Auch, gibt es eine Möglichkeit, kombinieren diese beiden Zeilen oben?
InformationsquelleAutor supernovaee | 2017-02-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie
Index.get_loc
für die position der SpalteTaste
, weilDataFrame.iloc
auswählen von Positionen:Mögliche Lösung mit
ix
wird nicht empfohlen, da missbilligen ix in der nächsten version des pandas:InformationsquelleAutor jezrael
.iloc verwendet integer-Lage, in der Erwägung, dass .loc verwendet Namen. Beide Optionen auch Zeilen-UND Spalten-IDS (für DataFrames). Ihre erste code hat nicht funktioniert, weil Sie nicht angegeben haben, innerhalb der .iloc rufen Sie die Spalte, die Sie ausgewählt haben. Die zweite code-Zeile, die Sie versucht hat nicht funktioniert, weil Sie gemischt-ganzzahligen Position mit Spalte name, und .iloc akzeptiert nur ganzzahlige Lage. Wenn Sie nicht wissen, die Spalte integer-Speicherort, die Sie verwenden können
Index.get_loc
im Ort, wie oben vorgeschlagen. Andernfalls verwenden Sie den integer-position, in diesem Fall 1.ist gleich:
in dieser besonderen situation.
InformationsquelleAutor Jared Stufft
Rein integer-Standort-basierte Indizierung für die Auswahl von position.. z.B. :-
InformationsquelleAutor HeadAndTail
Bevorzuge ich
.loc
in solchen Fällen, und explizit verwenden Sie den index des DataFrame wenn Sie möchten, wählen Sie auf position:InformationsquelleAutor Rob