如何根据基于其他列的列对数据框进行排序[重复]
Posted
技术标签:
【中文标题】如何根据基于其他列的列对数据框进行排序[重复]【英文标题】:how to sort a dataframe based on column based on other column [duplicate] 【发布时间】:2019-05-25 10:20:19 【问题描述】:如何根据再次依赖于其他列的列对数据框进行排序?
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 列也已排序。
【问题讨论】:
使用df = df.sort_values(['A','C'], ascending=True)
【参考方案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
【讨论】:
以上是关于如何根据基于其他列的列对数据框进行排序[重复]的主要内容,如果未能解决你的问题,请参考以下文章