Heim >Backend-Entwicklung >Python-Tutorial >Warum funktioniert meine Pandas-Methode „replace()' nicht für einfache String-Ersetzungen?

Warum funktioniert meine Pandas-Methode „replace()' nicht für einfache String-Ersetzungen?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-02 09:48:02532Durchsuche

Why Isn't My Pandas `replace()` Method Working for Simple String Replacements?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn