我有一个pandas数据框架df
,我想根据从argsort
函数获得的索引对每行中的值进行排序。我得到的索引如下:
idx = np.argsort(df, axis=1)
现在我想使用结果idx
来排序df
的所有行,以及具有相同形状的不同数据帧(我们称之为df2
)的所有行。然而,我无法做到这一点。我试图用df[idx]
来排序它没有工作。如有任何帮助,不胜感激。
df.iloc[idx]
或df.loc[idx]
可以吗?
我终于实现了我想要的。这可能不是最干净的解决方案,但它确实奏效了:
idx = np.argsort(df, axis=1)
df_sorted = pd.DataFrame(data=np.take_along_axis(df.to_numpy(), idx.to_numpy(), axis=1), columns=df.columns)