Python基于argsort结果排序数据帧



我有一个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)

最新更新