Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Pandas-按唯一值排序_Python_Pandas_Sorting - Fatal编程技术网

Python Pandas-按唯一值排序

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

将我的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_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这样做有效。愿意回答吗?