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中文網其他相關文章!