gpt4 book ai didi

python - 在 DataFrame 中进行分组、求和、排序和选择

转载 作者:太空宇宙 更新时间:2023-11-03 20:04:37 24 4
gpt4 key购买 nike

我有一个像这样的数据框:

df=pd.DataFrame({'State' : ['A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C'],
'County' : ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i'],
'Population': [10, 11, 12, 13, 17, 16, 15, 18, 14]})

查看每个州人口最多的两个县,人口最多的两个州是哪两个(按人口最多到最少的顺序排列)?

我通过使用循环解决了这个问题,现在我试图获得相同的结果分组、求和、排序和选择。以下代码可以工作,但我确信有许多不同且更优雅的方法可以实现。

df.groupby(['State'])['Population'].nlargest(2).groupby(['State']).sum()\
.sort_values(ascending=False)[:2].to_frame()\
.reset_index()['State'].tolist()

最佳答案

你不能把这个缩短一点。

df.groupby(['State'])['Population'].nlargest(2)\
.sum(level=0).sort_values(ascending=False).index[:2].tolist()

无需转换回数据帧来检索状态,只需直接从索引获取状态即可。将 sumlevel 参数一起使用只是比 groupby 更简短的语法。

关于python - 在 DataFrame 中进行分组、求和、排序和选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59038174/

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