所以我有一個看起來像這樣的數據框 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
添加回答
舉報
0/150
提交
取消