我有以下的數據框「matches_df」,使用python 2.7:識別重複的數據幀大熊貓
name | opponent | date | win
'Bob' 'Bill' 7/12/16 Y
'Mike' 'Matt' 4/15/18 N
'Tim' 'Tom' 1/1/11 N
'Bill' 'Bob' 7/12/16 N
我想不包含重複遊戲的列表。這些遊戲具有相同的兩名球員(不一定在同一列中)並且在同一天進行。在上面的例子中,遊戲1和4是重複的。
爲了解決這個問題,我嘗試創建了第4列game_id,它創建了前3列的排序組合。例如,我想這樣的結果:
name | opponent | date | win | game_id
'Bob' 'Bill' 7/12/16 Y '7/12/16 Bill Bob'
'Mike' 'Matt' 4/15/18 N '4/15/18 Matt Mike'
'Tim' 'Tom' 1/1/11 N '1/1/11 Tim Tom'
'Bill' 'Bob' 7/12/16 N '7/12/16 Bill Bob'
我用下面的代碼:
def sort_and_squash(a,b,c):
return ''.join(sorted([str(a),str(b),str(c)]))
matches_df = matches_df.assign(game_id = lambda x: sort_and_squash(x.name,x.opponent,x.date))
然而,這並沒有工作打算,從而在數據幀的空白欄。
我在尋找幫助,無論是在我的代碼中尋找中間步驟的錯誤還是推薦了一種替代方法。
也許看看'str(x.name)'產生了什麼。 – lmo
與此答案相當重疊:http:// stackoverflow。COM /問題/ 23667369 /下拉所有複本行式的Python-大熊貓。如果你想刪除重複的只有幾個列也很有趣。 – PlagTag