[英]How to arrange Pandas dataframe based on all row values positive, one row values negative, two row values negative ... and all row values negative,
如何排列 Pandas dataframe 基于所有行值为正,一行值为负,两行值为负...和所有行值为负,
df=pd.DataFrame({
'x':[1, 2, 3, -1, -2, -3],
'y':[-1, 3, 2, -4, 3, -2],
'z':[1 , 1, 5, 2, 1, -1]}]
预计 output
index x y z
1 2 3 1 all positive
2 3 2 5
4 -2 3 1 one negative
0 1 -1 1
3 -1 -4 2 two negative
5 -3 -2 -1 all negative
试试这个:
它获取大于 0 的行,将它们跨列求和,然后根据值,按降序排序(所有正数应该是最高的,其次是一个负数,两个负数,并且都是负数)。 排序后,可以删除num
列,因为它已达到目的。
(df.assign(num=df.ge(0).sum(1))
.sort_values("num", ascending=False)
.drop(columns=["num"])
)
x y z
1 2 3 1
2 3 2 5
4 -2 3 1
0 1 -1 1
3 -1 -4 2
5 -3 -2 -1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.