亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何根據應用于其他兩列的函數更改列中的值

如何根據應用于其他兩列的函數更改列中的值

瀟瀟雨雨 2021-09-11 15:43:32
所以我有一個看起來像這樣的數據框 DF: DF:match_id        team        teamA_Win  Outcome1               A           True        None2               B           True        None3               A           False       None此 df 中的結果列填充有字符串“無”我想要的是能夠根據 team 和 teamA_win 中的值將結果中的字符串值更改為“Win”或“Loss”。例如,如果 Team == A 且 TeamA_win=True 為 True,則結果應為 Win。但是,如果 Team==A 且 TeamA_Win=False,則結果為輸。同樣,如果 Team==B 和 TeamA_Win=True 那么結果應該是輸。我創建了以下函數:def win(x):    if (x['team']=='A')& (x['teamA_win']==True):        x['outcome']='Win'    elif ((x['team']=='A')& (x['teamA_win']==False)):        x['outcome']='Loss'    elif ((x['team']=='B')& (x['teamA_win']==True)):        x['outcome']='Loss'        elif ((x['team']=='B')& (x['teamA_win']==False)):        x['outcome']='Win'   但是,現在當我調用 win(DF) 時,出現錯誤:系列的真值不明確。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()。關于如何解決這個問題的任何想法?或者是否有更簡單的方法來處理這種情況?
查看完整描述

2 回答

?
富國滬深

TA貢獻1790條經驗 獲得超9個贊

或者一個雙襯, make 'Outcome'column False,并用于loc檢查'team'column 是否等于'teamA_Win'替換Truewith'A'和Falsewith 'B',如果是,則 make 'Outcome'column True:


df['Outcome']=False

df.loc[df['team']==df['teamA_Win'].map({True:'A',False:'B'}),'Outcome']=True

輸出:


   match_id team teamA_Win Outcome

0         1    A      True    True

1         2    B      True   False

2         3    A     False   False


查看完整回答
反對 回復 2021-09-11
  • 2 回答
  • 0 關注
  • 198 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號