首頁  >  文章  >  後端開發  >  如何根據某些條件修改 Pandas DataFrame 中的特定值?

如何根據某些條件修改 Pandas DataFrame 中的特定值?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-10-26 11:07:03290瀏覽

How can I modify specific values in a Pandas DataFrame based on certain criteria?

根據 Pandas 中的特定條件修改值

迭代 Pandas DataFrame 時,通常需要根據匹配條件修改特定值。為了在 Pandas 中實現這一點,我們可以利用它的索引和過濾功能。

理解問題

目標是迭代 DataFrame 中的「ID」欄位如果遇到特定 ID,則相應地更改「FirstName」和「LastName」欄位。在Stata 中,可以使用以下方法來實現:

replace FirstName = "Matt" if ID==103
replace LastName = "Jones" if ID==103

Pandas 實作

要在Pandas 中實作此邏輯,我們可以使用以下方法:

import pandas as pd

df = pd.read_csv("test.csv")

# Using logical indexing and overwrite assignment
df.loc[df.ID == 103, 'FirstName'] = "Matt"
df.loc[df.ID == 103, 'LastName'] = "Jones"

此程式碼會根據條件ID == 103 對DataFrame 進行切片,以選擇具有該ID 的行,然後用所需的值覆寫「FirstName」和「LastName」欄位中的值。

鍊式賦值

另一種方法,雖然不太推薦,但鍊式賦值:

df['FirstName'][df.ID == 103] = "Matt"
df['LastName'][df.ID == 103] = "Jones"

這種方法也會根據過濾條件修改值,但不鼓勵這樣做因為它可能會導致較新的Pandas 版本出現不可預測的行為。

結論

透過利用適當的索引和覆蓋賦值技術,Pandas 允許基於特定值的高效修改根據匹配標準,實現與其他統計軟體中類似的複雜數據操作。

以上是如何根據某些條件修改 Pandas DataFrame 中的特定值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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