我有由+ ve和-ve列组成的df列。
A B
0 a 5
1 b -13
2 c 15
3 d -10
并且有一种方法可以将+ ve值递增和-ve值递减
A B
0 a 5
1 c 15
2 d -10
3 b -13
答案 0 :(得分:4)
首先使用boolean indexing
进行过滤,然后按DataFrame.sort_values
进行排序,最后使用concat
进行过滤:
mask = df['B'].gt(0)
df = pd.concat([df[mask].sort_values('B'),
df[~mask].sort_values('B', ascending=False)], ignore_index=True)
print (df)
A B
0 a 5
1 c 15
2 d -10
3 b -13