熊猫groupby agg具有多种功能以应用返回错误

阿德斯汀

问题尝试在简单数据框(可下载的csv)上进行分组,然后agg返回列的汇总值(大小,总和,均值,标准差)。看起来很简单的问题是出现了意外的具有挑战性的错误。

Top15.groupby('Continent')['Pop Est'].agg(np.mean, np.std...etc)
# returns 
ValueError: No axis named <function std at 0x7f16841512f0> for object type <class 'pandas.core.series.Series'>

我想要得到的是将索引设置为大洲和列的df ['size', 'sum', 'mean', 'std']

范例程式码

import pandas as pd
import numpy as np

# Create df
df = pd.DataFrame({'Country':['Australia','China','America','Germany'],'Pop Est':['123','234','345','456'],'Continent':['Asia','Asia','North America','Europe']})

# group and agg
df = df.groupby('Continent')['Pop Est'].agg('size','sum','np.mean','np.std')
麻雀

您只能对数字的大小和总和进行汇总,因此在创建数据框时,请勿输入数字作为字符串:

df = pd.DataFrame({'Country':['Australia','China','America','Germany'],'PopEst':[123,234,345,456],'Continent':['Asia','Asia','North America','Europe']})

我认为这将为您带来想要的东西?

grouped = df.groupby('Continent')
grouped['PopEst'].agg(['size','sum','mean','std'])


size    sum mean    std
Continent               
Asia    2   357 178.5   78.488853
Europe  1   456 456.0   NaN
North America   1   345 345.0   NaN

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章