首頁 > 後端開發 > Python教學 > 如何根據條件替換 Pandas DataFrame 列中的特定值?

如何根據條件替換 Pandas DataFrame 列中的特定值?

Mary-Kate Olsen
發布: 2024-11-02 20:41:02
原創
200 人瀏覽過

How to Replace Specific Values in a Pandas DataFrame Column Based on Conditions?

Pandas DataFrame:根據條件進行目標值替換

在 Pandas 中,通常需要根據某些條件修改 DataFrame 中的特定值。雖然常見的方法是使用 loc 來選擇行,但了解如何精確定位特定列進行值修改至關重要。

考慮以下DataFrame,我們希望在其中替換「第一季」中的值超過1990 且整數1 的列:

                 Team  First Season  Total Games
0      Dallas Cowboys          1960          894
1       Chicago Bears          1920         1357
2   Green Bay Packers          1921         1339
3      Miami Dolphins          1966          792
4    Baltimore Ravens          1996          326
5  San Franciso 49ers          1950         1003
登入後複製

僅使用loc 函數的初始嘗試導致替換所選行中的所有值,而不僅僅是目標列。為了修正這個問題,我們需要明確指定「First Season」欄位作為loc 的第二個參數:

df.loc[df['First Season'] > 1990, 'First Season'] = 1
登入後複製

這種有針對性的方法確保只有「First Season」欄位中的值滿足條件替換為1,其他列不受影響。

                 Team  First Season  Total Games
0      Dallas Cowboys          1960          894
1       Chicago Bears          1920         1357
2   Green Bay Packers          1921         1339
3      Miami Dolphins          1966          792
4    Baltimore Ravens             1          326
5  San Franciso 49ers          1950         1003
登入後複製

或者,如果所需結果是布林指標,您可以使用該條件建立布林系列並將其轉換為整數,其中True 和False分別轉換為1 和0:

df['First Season'] = (df['First Season'] > 1990).astype(int)
登入後複製

此方法產生具有更新值的DataFrame:

                 Team  First Season  Total Games
0      Dallas Cowboys             0          894
1       Chicago Bears             0         1357
2   Green Bay Packers             0         1339
3      Miami Dolphins             0          792
4    Baltimore Ravens             1          326
5  San Franciso 49ers             0         1003
登入後複製

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

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