gpt4 book ai didi

python - 如何按 MultiIndex 和按值对 Pandas DataFrame 进行排序?

转载 作者:太空狗 更新时间:2023-10-30 00:42:39 24 4
gpt4 key购买 nike

示例数据:

mdf = pd.DataFrame([[1,2,50],[1,2,20],
[1,5,10],[2,8,80],
[2,5,65],[2,8,10]
], columns=['src','dst','n']); mdf

src dst n
0 1 2 50
1 1 2 20
2 1 5 10
3 2 8 80
4 2 5 65
5 2 8 10

groupby()给出了一个二级多索引:

test = mdf.groupby(['src','dst'])['n'].agg(['sum','count']); test

sum count
src dst
1 2 70 2
5 10 1
2 5 65 1
8 90 2

问题如何对这个DataFrame按src升序排序,然后按sum降序排序?

我是 pandas 的初学者,了解了 sort_index() 和 sort_values(),但在这个任务中,我似乎同时需要两者。

预期结果,每个“src”下的排序由“sum”决定:

        sum count
src dst
1 2 70 2
5 10 1
2 8 90 2
5 65 1

最佳答案

以防其他人也使用谷歌遇到这个问题。从 pandas 版本 0.23 开始,您可以将关卡名称作为参数传递给 sort_values:

test.sort_values(['src','sum'], ascending=[1,0])

Result:
sum count
src dst
1 2 70 2
5 10 1
2 8 90 2
5 65 1

关于python - 如何按 MultiIndex 和按值对 Pandas DataFrame 进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49264510/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com