我有一个panda数据框df,我想根据从argsort函数中得到的索引对每一行的值进行排序,得到的索引如下:
df
argsort
idx = np.argsort(df, axis=1)
现在我想使用结果idx来排序df的所有行,以及具有相同形状的不同 Dataframe (我们称之为df2)的所有行。但是我无法实现这一点。我尝试使用df[idx]排序它没有成功。非常感谢任何帮助。
idx
df2
df[idx]
tcomlyy61#
df.iloc[idx]或df.loc[idx]是否可以实现此功能?
df.iloc[idx]
df.loc[idx]
ffscu2ro2#
我设法达到了我想要的。这可能不是最干净的解决方案,但它确实起到了作用:
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)
2条答案
按热度按时间tcomlyy61#
df.iloc[idx]
或df.loc[idx]
是否可以实现此功能?ffscu2ro2#
我设法达到了我想要的。这可能不是最干净的解决方案,但它确实起到了作用: