首頁 >後端開發 >Python教學 >為什麼我的 Pandas `replace()` 方法不能用於簡單的字串替換?

為什麼我的 Pandas `replace()` 方法不能用於簡單的字串替換?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-02 09:48:02532瀏覽

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

Pandas的replace()方法不起作用?試試這個簡單的修復

當嘗試使用replace()方法來取代Pandas DataFrame中的字串時,可能會遇到一個令人費解的問題,即沒有發生替換。與複雜的替換相比,這種情況通常涉及簡單的替換嘗試。

為了說明這一點,讓我們檢查以下資料框:

d = {'color' : pd.Series(['white', 'blue', 'orange']),
   'second_color': pd.Series(['white', 'black', 'blue']),
   'value' : pd.Series([1., 2., 3.])}
df = pd.DataFrame(d)

當我們嘗試將所有出現的「白色」替換為NaN,令人驚訝的是,沒有任何反應:

df.replace('white', np.nan)

輸出維持不變:

      color second_color  value
0   white        white      1
1    blue        black      2
2  orange         blue      3

那麼,出了什麼問題?

事實證明,replace()方法預設執行完全替換搜尋。要啟用部分替換,我們需要將regex 參數設為True:

df.replace('white', np.nan, regex=True)

或者,我們可以使用str.replace() 方法,該方法可以更好地控制替換過程:

df['color'].str.replace('white', np.nan)

額外提示:如果您正在考慮使用inplace=True 就地執行替換,請務必了解其註意事項。

以上是為什麼我的 Pandas `replace()` 方法不能用於簡單的字串替換?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn