首頁 > 後端開發 > Python教學 > 如何有條件地替換 Pandas DataFrame 欄位中的值?

如何有條件地替換 Pandas DataFrame 欄位中的值?

DDD
發布: 2024-12-31 17:13:13
原創
232 人瀏覽過

How to Conditionally Replace Values in a Pandas DataFrame Column?

Pandas DataFrame 中的條件值替換

使用Pandas DataFrame 時,您可能會遇到需要根據條件有條件替換值的情況指定條件。此問題說明了這樣一個場景,其中使用者試圖將特定列中超過閾值的值替換為零。

最初,使用者嘗試使用以下方法:

df[df.my_channel > 20000].my_channel = 0
登入後複製

然而,這個方法沒有任何結果。這是因為 Pandas 自 0.20.0 版本以來已棄用 .ix 索引器,使用者應使用 .loc 或 .iloc 索引器。

正確的解決方案包括使用 .loc 或 .iloc 來定位特定行或列並執行條件替換。以下是如何使用.loc:

mask = df.my_channel > 20000
column_name = 'my_channel'
df.loc[mask, column_name] = 0
登入後複製

或者,您可以使用.loc 在一行中完成相同的任務:

df.loc[df.my_channel > 20000, 'my_channel'] = 0
登入後複製

掩碼變數有助於識別滿足條件的行條件df.my_channel > 20000,且df.loc[mask, column_name] = 0 為指定列中選定的行分配0。

注意:在此特定場景中,建議使用 .loc 代替.iloc 以避免 NotImplementedError,因為不支援使用 .iloc 進行基於整數的布林索引。

以上是如何有條件地替換 Pandas DataFrame 欄位中的值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板