使用排序索引筛选数据帧

2024-04-27 00:45:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这个{},有5项:

Pierre-Emerick Aubameyang    0.629630
Sergio Aguero                0.592593
Danny Ings                   0.555556
Mohamed Salah                0.538462
Sadio Mane                   0.500000

这是{},所有玩家及其各自的颜色多次出现,共有15k项:

Andrew Robertson      #CE1317
Dejan Lovren          #CE1317
Joel Matip            #CE1317
Joseph Gomez          #CE1317
Nathaniel Phillips    #CE1317
                       ...   
Michail Antonio       #7C2C3B
Nathan Holland        #7C2C3B
Pablo Fornals         #7C2C3B
Robert Snodgrass      #7C2C3B
Tomas Soucek          #7C2C3B

我如何过滤df_player_colors,(或将df_player_means映射到df_player_colors),最终以df_player_unique_colors结束,玩家从df_player_means开始,按照精确的排序顺序,与各自的颜色一起

我试过:

 players = df_player_means.index

 df_player_unique_colors = df_player_colors[df_player_colors.index.isin(players)]

但是被映射的颜色是错误的


1条回答
网友
1楼 · 发布于 2024-04-27 00:45:04

IIUC,尝试使用joindrop_duplicates,如果您为同一播放器复制了颜色

df_player_means.to_frame(name='mean')\
               .join(df_player_colors.to_frame(name='color'), how='left')\
               .drop_duplicates()

或者可能与loc类似:

df_player_colors.loc[df_player_means.index]

相关问题 更多 >