Pandas 條件替換
操作 DataFrame 時,您可能會遇到需要替換滿足特定條件的值的情況。本問題旨在解決如何在特定列中用零替換超過閾值的值。
原始方法和限制
初始方法嘗試使用語法 df [df.my_channel> 20000].my_channel = 0。但是,正如使用者所觀察到的,這種方法在原始 DataFrame 中工作時會遇到問題。
使用.loc 索引器的解決方案
至要解決此問題,可以使用.loc 索引器,在較新版本的Pandas 中推薦使用該索引器。此語法允許精確的行和列選擇和變更。要實現所需的替換,您可以使用以下程式碼:
mask = df.my_channel > 20000 column_name = 'my_channel' df.loc[mask, column_name] = 0
或者,您可以將程式碼壓縮為一行:
df.loc[df.my_channel > 20000, 'my_channel'] = 0
說明
mask 變數選擇df.my_channel 超過20000 的行。隨後,df.loc[mask, column_name] = 0 將那些遮罩為 True 的行的 my_channel 欄位設為零。
注意
必須使用在這種情況下,.loc 索引器,因為在整數類型列上使用帶有布林索引的.iloc 將導致未實現錯誤。
以上是如何有效地將超過閾值的 Pandas DataFrame 值替換為零?的詳細內容。更多資訊請關注PHP中文網其他相關文章!