【发布时间】:2020-06-23 15:57:27
【问题描述】:
我想按升序对数据框中的所有列进行独立排序。我的数据框如下:
date,A,B,C,D
1989-12-31,540.8,497.351,757.9,649.811
1990-12-31,388.9,453.65,454.2,714.898
1991-12-31,796.3,170.308,1080.4,274.678
1992-12-31,427.7,304.587,695.6,414.898
我已经手动尝试过:
df1=df.sort_values(by=['A','B','C','D'],axis=0, inplace=True)
date,A,B,C,D
1990-12-31,388.9,453.65,454.2,714.898
1992-12-31,427.7,304.587,695.6,414.898
1989-12-31,540.8,497.351,757.9,649.811
1991-12-31,796.3,170.308,1080.4,274.678
但正如您所见,它仅适用于“A”列。
我必须在每一列上做一个循环吗?
有没有更简单的方法?我查看了排序手册,但我无法弄清楚。
谢谢
【问题讨论】:
-
df.iloc[:,1:]=np.sort(df.iloc[:,1:].to_numpy(),axis=0)? -
我找到了这个。很优雅 df=df.transform(np.sort) 你怎么看?
-
确实很不错..不知道你可以在转换中传递
np.sort
标签: python pandas sorting multiple-columns