【发布时间】:2020-07-16 15:09:04
【问题描述】:
我有一个看起来像这样的熊猫数据框:
X Y Z
AB bat 0.51184607
AB ball 0.45687276
AB cat 0.5428388
CD apple 0.89665717
CD tiger 0.6785901
CD bench 0.787102
CD dragon 0.8066087
我想根据 Z 列的值以降序对数据框进行排序,并相应地获取相应的 Y 列值,但保持 X 列不变。所以输出应该是这样的:
X Y Z
AB cat 0.5428388
AB bat 0.51184607
AB ball 0.45687276
CD apple 0.89665717
CD dragon 0.8066087
CD bench 0.787102
CD tiger 0.6785901
如何在 pandas 中有效地做到这一点
【问题讨论】:
-
df.sort_values(['X','Z'], ascending=[True,False])? -
对于
X必须保持固定但没有字母数字顺序的情况,必须首先将其转换为 dtypecategory,如 this answer 所示。
标签: python python-3.x pandas dataframe sorting