如何基于基于其他列的列对数据框进行排序

时间:2018-12-27 11:15:18

标签: python python-3.x pandas

如何基于再次依赖于其他列的列对数据框进行排序?

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列也已排序。

1 个答案:

答案 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