This question already has answers here:
Pandas groupby nlargest sum
(2个答案)
4年前关闭。
我有一个这样的数据框:
我想对每个州的COUNTY_POP中的三个最大整数求和。到目前为止,我有:
但是,当我在上述代码中添加.sum()操作时,会收到以下输出。
我是Python和Pandas的新手。如果有人能解释造成这种情况的原因以及如何纠正它,我将非常感激!
(2个答案)
4年前关闭。
我有一个这样的数据框:
Index STNAME COUNTY COUNTY_POP
0 AL 0 100
1 AL 1 150
2 AL 3 200
3 AL 5 50
...
15 CA 0 300
16 CA 1 200
17 CA 3 250
18 CA 4 350
我想对每个州的COUNTY_POP中的三个最大整数求和。到目前为止,我有:
In[]: df.groupby(['STNAME'])['COUNTY_POP'].nlargest(3)
Out[]:
Index STNAME COUNTY COUNTY_POP
0 AL 0 100
1 AL 1 150
2 AL 3 200
...
15 CA 0 300
17 CA 3 250
18 CA 4 350
但是,当我在上述代码中添加.sum()操作时,会收到以下输出。
In[]: df.groupby(['STNAME'])['COUNTY_POP'].nlargest(3).sum()
Out[]:
1350
我是Python和Pandas的新手。如果有人能解释造成这种情况的原因以及如何纠正它,我将非常感激!
最佳答案
那是你要的吗?
In [25]: df.groupby('STNAME')['COUNTY_POP'].agg(lambda x: x.nlargest(3).sum())
Out[25]:
STNAME
AL 450
CA 900
Name: COUNTY_POP, dtype: int64
关于python - 如何对groupby中的nlargest()整数求和,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40517350/
10-12 18:45