Python 如何按字典分组并聚合数据帧

Python 如何按字典分组并聚合数据帧,python,pandas,Python,Pandas,我有一个数据框'df',索引'Country'和一列'estimatedpopulation'。 该索引有15个国家名称。 我还有一本字典: ContinentDict = {'China':'Asia', 'United States':'North America', 'Japan':'Asia', 'United Kingdom':'Europe', 'Russian

我有一个数据框'df',索引'Country'和一列'estimatedpopulation'。

该索引有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'}
字典中的所有国家都出现在数据框中。 使用给定的字典,我需要“按大陆对国家进行分组,然后创建一个日期框,显示每个国家估计人口的平均值和std偏差。”

这是我尝试的代码:

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)”


如何消除这些错误并获取所需的数据库?

在应用
.agg
函数之前,您需要更改
估计人口
列的数据类型

使用:

或者


包括您的数据框样本。@ShubhamSharma我编辑了这个问题,它现在有数据框的图片。
Estimated Population
column?的数据类型是什么?您可以通过执行
df[“Estimated Population”]来检查它。dtype
@Harsha您需要以硬代码而不是图片的形式添加样本数据框。@Shubhamshama“dtype('O')”
df['Estimated Population'] = df['Estimated Population'].astype(float)
df['Estimated Population'] = pd.to_numeric(df['Estimated Population'])