[英]Pandas - filter dataframe with sorted index
I have this df_player_means
, with 5 items:我有这个
df_player_means
,有 5 个项目:
Pierre-Emerick Aubameyang 0.629630
Sergio Aguero 0.592593
Danny Ings 0.555556
Mohamed Salah 0.538462
Sadio Mane 0.500000
And this df_player_colors
, where all players and their respective colors appear multiple times, with 15k items:而这个
df_player_colors
,其中所有玩家和他们各自的 colors 出现了多次,有 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
How do I filter df_player_colors
, (or map df_player_means
to df_player_colors
), ending up with df_player_unique_colors
, with players from df_player_means
, in that exact sorted order, alongside their respective colors?我如何过滤
df_player_colors
,(或 map df_player_means
到df_player_colors
),以df_player_unique_colors
结束,来自df_player_means
的球员,按照准确的排序顺序,以及他们各自的 colors?
I have tried:我试过了:
players = df_player_means.index
df_player_unique_colors = df_player_colors[df_player_colors.index.isin(players)]
But colors being mapped are wrong..但是映射的 colors 是错误的..
IIUC, try with join
and drop_duplicates
maybe if you have duplicated colors for same player IIUC,如果您为同一玩家复制了 colors,请尝试使用
join
和drop_duplicates
df_player_means.to_frame(name='mean')\
.join(df_player_colors.to_frame(name='color'), how='left')\
.drop_duplicates()
or maybe with loc like:或者可能像 loc 一样:
df_player_colors.loc[df_player_means.index]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.