Pandas replace() Methode funktioniert nicht? Probieren Sie diese einfache Lösung aus
Beim Versuch, Zeichenfolgen in einem Pandas-DataFrame mithilfe der Methode „replace()“ zu ersetzen, kann es zu einem rätselhaften Problem kommen, bei dem keine Ersetzung erfolgt. Im Gegensatz zu komplexen Ersetzungen handelt es sich in dieser Situation häufig um einfache Ersetzungsversuche.
Zur Veranschaulichung untersuchen wir den folgenden Datenrahmen:
d = {'color' : pd.Series(['white', 'blue', 'orange']), 'second_color': pd.Series(['white', 'black', 'blue']), 'value' : pd.Series([1., 2., 3.])} df = pd.DataFrame(d)
Wenn wir versuchen, alle Vorkommen von „weiß“ durch zu ersetzen NaN, überraschenderweise passiert nichts:
df.replace('white', np.nan)
Die Ausgabe bleibt unverändert:
color second_color value 0 white white 1 1 blue black 2 2 orange blue 3
Also, was ist schief gelaufen?
Es stellt sich heraus, dass der replace() Die Methode führt standardmäßig vollständige Ersetzungssuchen durch. Um teilweise Ersetzungen zu ermöglichen, müssen wir den Regex-Parameter auf True setzen:
df.replace('white', np.nan, regex=True)
Alternativ können wir die Methode str.replace() verwenden, die mehr Kontrolle über den Ersetzungsprozess bietet:
df['color'].str.replace('white', np.nan)
Bonus-Tipp: Wenn Sie erwägen, inplace=True zu verwenden, um die Ersetzung direkt durchzuführen, stellen Sie sicher, dass Sie die Vorbehalte verstehen.
Das obige ist der detaillierte Inhalt vonWarum funktioniert meine Pandas-Methode „replace()' nicht für einfache String-Ersetzungen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!