我有一个带有索引“国家”的数据框“ df”和一个“估计人口”列。
该索引有15个国家/地区名称。 我也有字典:
ContinentDict = {'China':'Asia',
'United States':'North America',
'Japan':'Asia',
'United Kingdom':'Europe',
'Russian Federation':'Europe',
'Canada':'North America',
'Germany':'Europe',
'India':'Asia',
'France':'Europe',
'South Korea':'Asia',
'Italy':'Europe',
'Spain':'Europe',
'Iran':'Asia',
'Australia':'Australia',
'Brazil':'South America'}
词典中的所有国家/地区都出现在数据框中。 使用给定的字典,我需要“按洲对国家进行分组,然后创建一个日期框架,显示每个国家的估计人口的均值和标准差”。
这是我尝试的代码:
df2=df.groupby(ContinentDict)['Estimated Population'].agg({'mean':np.mean,'std':np.std})
运行此代码时,出现错误“没有要聚合的数字类型”
然后我尝试了以下代码:
df2=pd.to_numeric(df.groupby(ContinentDict)['Estimated Population']).agg({'mean':np.mean,'std':np.std})
这给了我错误“缓冲区的维数错误(预期1,得到2)”
如何消除这些错误并获取所需的数据库?
答案 0 :(得分:3)
在应用Estimated Population
函数之前,您需要更改.agg
列的 dtype 。
使用:
df['Estimated Population'] = df['Estimated Population'].astype(float)
或者,
df['Estimated Population'] = pd.to_numeric(df['Estimated Population'])