• 周一. 1 月 13th, 2025

5G编程聚合网

5G时代下一个聚合的编程学习网

热门标签

使用排序索引筛选数据帧

King Wang

3 月 7, 2023

我有这个{},有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楼 ·

发布于 2023-03-06 23:31:02

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]

《使用排序索引筛选数据帧》有32个想法

发表回复