[英]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.