根据列对数据帧进行Argsort

我有以下数据帧:

用户身份 列_1 列_2 第 3 列
一种 4.959 3.231 1.2356
0.632 0.963 2.4556
C 3.234 7.445 5.3435
D 1.454 0.343 2.2343

回答

您可以np.argsort在轴 1 上使用。然后使用numpy indexing转换df.columnsnumpy数组。pd.Index.to_numpy

df = df.set_index('userId') # If userId is not index already.
idx = df.values.argsort(axis=1)
out = pd.DataFrame(df.columns.to_numpy()[idx], index=df.index)

               0         1         2
userId
A       column_3  column_2  column_1
B       column_1  column_2  column_3
C       column_1  column_3  column_2
D       column_2  column_1  column_3


以上是根据列对数据帧进行Argsort的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>