我有一个网球数据集,看起来像下面这样:
tourney_id = ['French Open 2018','French Open 2018','Wimbledon 2018','Wimbledon 2018','Australian Open 2019','Australian Open 2019','US Open 2019','US Open 2019']
player_name = ['Novak Djokovic','Roger Federer','Andy Murray','Rafael Nadal','John Isner','Novak Djokovic','Andy Murray','Roger Federer']
match_num = [103, 103, 217, 217, 104, 104, 243, 243]
df = pd.DataFrame(list(zip(tourney_id, player_name, match_num)),
columns =['TournamentID','Name','MatchID'])
字符串
我想创建一个字典,其中键是球员,项目也是球员(对手)。所以基于我的数据集,它看起来像下面这样:
{'Novak Djokovic': ['Roger Federer','John Isner'],
'Roger Federer': ['Novak Djokovic','Andy Murray'],
'Andy Murray': ['Rafael Nadal','Roger Federer'],
'Rafael Nadal': ['Andy Murray'],
'John Isner': ['Novak Djokovic']}
型
我想找出那些在TournamentID和MatchID上有相同值的球员。
我最后尝试的是:df.set_index(['TournamentID','MatchID'])['Name'].to_dict()
,但这不是我想要的。
有没有人能帮我指出正确的方向?
谢谢你,谢谢你
4条答案
按热度按时间jdzmm42g1#
使用
set
操作:字符串
输出量:
型
你也可以使用
networkx
来计算每个玩家的对手的图,然后遍历节点以获得直接的neighbors
:型
输出量:
型
图表说明:
的数据
5f0d552i2#
以下是您的操作方法:
字符串
输出量:
型
jdzmm42g3#
使用collections.defaultdict对象(在同一场比赛中累积球员):
个字符
5lhxktic4#
字符串