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
這種有針對性的方法確保只有「第一季」欄位中滿足條件的值被替換為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
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3