问题尝试在简单数据框(可下载的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] 删除。
我来说两句