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”,所以我放弃了。然而,我似乎可以添加我自己的统计数据。谢谢你的链接=)