如何基于再次依赖于其他列的列对数据框进行排序?
DF:
A B C
ww a 70
ww b 90
ww c 100
qq a 100
qq b 80
qq c 90
rr a 80
rr b 70
rr c 100
我希望C列分别与A列进行排序。这意味着我的A列应该升序,C列中的值应该升序更改,而不会按A列的顺序变化。
输出:
A B C
qq b 80
qq c 90
qq a 100
rr b 70
rr a 80
rr c 100
ww a 70
ww b 90
ww c 100
A列已排序,C列也已排序。
答案 0 :(得分:1)
只需使用df.sort_values(['A', 'C'], ascending=[1, 1])
首先按A
然后按C
都按升序排序:
import pandas as pd
d = {'A': ['ww','ww','ww', 'qq', 'qq', 'qq', 'rr', 'rr', 'rr'],
'B': ['a','b','c','a','b','c','a','b','c'],
'C': [70, 90, 100, 100, 80, 90, 80, 70, 100]}
df = pd.DataFrame(d)
df = df.sort_values(['A', 'C'], ascending=[1, 1])
print(df)
输出
A B C
4 qq b 80
5 qq c 90
3 qq a 100
7 rr b 70
6 rr a 80
8 rr c 100
0 ww a 70
1 ww b 90
2 ww c 100