Pandas 使用';groupby.count';与agg

Pandas 使用';groupby.count';与agg,pandas,group-by,aggregate,Pandas,Group By,Aggregate,df.head Populous Continents Australia 2.331602e+07 Australia Brazil 2.059153e+08 South America Canada 3.523986e+07 North America China 1.367645e+09 Asia France 6.383735e+07

df.head

                Populous        Continents
Australia   2.331602e+07        Australia
Brazil      2.059153e+08        South America
Canada      3.523986e+07        North America
China      1.367645e+09         Asia
France     6.383735e+07         Europe
以上是我的dataframe的前5个条目。 我想按大陆对它们进行分组,然后进行一些统计分析。我想创建一个新的数据框,将每组人口的平均值、总和、标准差以及每组国家的
计数作为其列

new_df=df.groupby('大陆')['popularous'].agg({'Avg':np.average,'Sum':np.Sum,'STD':np.STD})
,负责三列,但我不知道如何在其中获得
count
。我尝试在
agg
方法中包含
'Size':count
,但它导致了一个错误


多谢各位

您可以使用
'Size':len
'Size':“count”
来实现此功能。然而,正如@DSM所指出的,
len
会计算缺失的值,而
'count'
则不会。您可能会发现这一点很有用:

df.groupby('Continents').Populous.describe().unstack()

还可以查看是否需要更多统计信息。

使用
的“大小”:“计数”
其中计数是一个字符串。啊。这似乎奏效了。因此,非numpy函数在不将函数名转换为字符串的情况下工作,但其他函数需要字符串转换?为了方便起见,熊猫开发人员为
groupby
中使用的常用函数添加了字符串别名。例如,您的整个
agg
可以写入
{'Avg':'mean','Sum':'Sum','STD':'STD'}
。请注意,
'mean'
np.average
之间有一个细微的区别,即
'mean'
忽略
NaN
,然而,
np.average
将返回
NaN
,如果有。非常感谢。
len
'count'
不一样--
count
不包括空值,但
len
包含空值。我不知道。谢谢你的留言-我把它添加到了答案中。是的,我试着用
描述
,但我发现它缺少“sum”,所以我放弃了。然而,我似乎可以添加我自己的统计数据。谢谢你的链接=)