输入:
df['PopEst']
.astype('float')
.groupby(ContinentDict)
.agg(['size','sum','mean','std']))
输出:
size sum mean std
Asia 5 2.898666e+09 5.797333e+08 6.790979e+08
Australia 1 2.331602e+07 2.331602e+07 NaN
Europe 6 4.579297e+08 7.632161e+07 3.464767e+07
North America 2 3.528552e+08 1.764276e+08 1.996696e+08
South America 1 2.059153e+08 2.059153e+08 NaN
如果一个分组只有一行数据,那么std列中的某些值会变成NaN,但我认为这些值应该是0,为什么会这样?
.agg('size','sum','mean',np.std)
时,_输出_仍然保持NaN。但是当我使用lambda x:np.std(x)
代替时,NaN变成了0,这正是我想要的。我想知道为什么会发生这种情况。 - Alex J.agg([np.mean, np.std])
时更改ddof
怎么办?我尝试使用.agg([np.mean, np.std], ddof=0)
将其作为外部参数传递,但它不起作用。 - FrancescoLSfunctools.partial
,然后使用partial(np.std, ddof=1)
或partial(np.std, ddof=2)
等。 - jppgroupby.agg(std)
和在每个组中执行np.std(x)
时,我得到了不同的结果。 - FrancescoLS