我有一个CSV文件,其中包含从2010年初到2018年的玩家历史排名。排名每周刷新一次,因此一个文件中包含54 x 8排名。有诸如日期,排名,玩家ID和积分之类的列。玩家ID是每个玩家的特定编号。我还有第二个csv,其中包含玩家ID,玩家名称,玩家姓氏。我想用第二个csv映射第一个数据帧中的玩家ID和玩家的名字和姓氏。
我刚刚使用<to_dict
创建了第二个csv的字典,我试图用<.map(dict1)>
和<from_dict>
来映射它,但是没有成功。
data_players = pd.read_csv(filepath, engine="python", sep=";",
keep_default_na=False)
data_rank = pd.read_csv(filepath2, engine="python", sep=",",
keep_default_na=False)
data_players = data_players.set_index('player_id')
dict1 = data_players.to_dict('index')
data_rank['player'] = pd.DataFrame.from_dict(dict1)
我的数据看起来像这样
ranking_date int64
rank int64
points object
player object
dtype: object
ranking_date rank points player
player
103819 20100104 1 10550 {'name_list': 'Federer'}
104745 20100104 2 9205 {'name_list': 'Nadal'}
104925 20100104 3 8310 {'name_list': 'Djokovic'}
104918 20100104 4 7030 {'name_list': 'Murray'}
105223 20100104 5 6785 {'name_list': 'Del Potro'}
我希望为此找到解决方案,我认为这很简单,但是我只是在学习python。
答案 0 :(得分:0)
不使用字典,请在此处使用
Df= data_players.merge(data_rank,left_on=“player_id”, right_on=“player_id”)