Python Pandas-按唯一值排序
将我的df分组如下:Python Pandas-按唯一值排序,python,pandas,sorting,Python,Pandas,Sorting,将我的df分组如下: # set X value target_x = 'Goals' # reduce df to target column df_temp = df_players.set_index("Player") # get mean value for every player df_temp[target_x] = df_temp.groupby('Player')[target_x].mean() # get values for axis plot X = df_t
# set X value
target_x = 'Goals'
# reduce df to target column
df_temp = df_players.set_index("Player")
# get mean value for every player
df_temp[target_x] = df_temp.groupby('Player')[target_x].mean()
# get values for axis plot
X = df_temp[target_x]
我最终得到了X
:
Andrew Robertson 0.038462
Dejan Lovren 0.000000
Joel Matip 0.038462
Joseph Gomez 0.000000
Nathaniel Phillips 0.000000
...
Michail Antonio 0.038462
Nathan Holland 0.000000
Pablo Fornals 0.076923
Robert Snodgrass 0.192308
Tomas Soucek 0.000000
我现在要整理一下
然而,有许多重复的参与者(和价值观),如果我这样做:
X.sort_values(ascending=False).unique()
我不想提及玩家:
[0.62962963 0.59259259 0.55555556 0.53846154 0.5 0.48148148
0.44444444 0.42307692 0.40740741 0.37037037 0.33333333 0.30769231
0.2962963 0.25925926 0.23076923 0.22222222 0.19230769 0.18518519
0.15384615 0.14814815 0.11538462 0.11111111 0.07692308 0.07407407
0.03846154 0.03703704 0. ]
那么,如何对每个排序值的播放器进行排序呢?使用
X.sort\u值(升序=False)。drop\u duplicates()
取而代之的是,unique
创建一个没有索引的numpy.array你知道by
参数吗?您可以按多列排序x.sort_value(['player','mean'])
如果您要查找玩家的平均值,可以执行x=df_temp.groupby('player')[target_x].mean()
而不是x=df_temp[target_x]
groupby
使用其聚合平均值生成唯一的播放器,然后您可以对输出进行排序。使用X.sort\u值(升序=False)。删除重复项()
,unique
创建一个没有索引的np.array
。@Erfan这样做有效。愿意回答吗?