【发布时间】:2016-12-15 07:16:52
【问题描述】:
Pandas 的新手,所以想知道是否有更 Pandithic(创造它!)的方法来对一些数据进行排序、分组,然后对其中的一部分求和。问题是在一系列值中找到最大的 3 个值,然后将它们相加。
census_cp 是一个包含州县信息的数据框。我目前的解决方案是:
cen_sort = census_cp.groupby('STNAME').head(3)
cen_sort = cen_sort.groupby('STNAME').sum().sort_values(by='CENSUS2010POP', ascending=False).head(n=3)
cen_sort = cen_sort.reset_index()
print(cen_sort['STNAME'].values.tolist())
我特别好奇是否有更好的方法来做到这一点,以及为什么我不能将总和放在前一行的末尾,并将我认为明显相关的项目链接在一起(获取每个项目的前 3 个)并将它们加在一起)。
【问题讨论】:
-
值是否首先排序并按
.head(3)需要每个组的顶部3值? -
技术术语当然是“熊猫人”。