首页 > 解决方案 > 使用字典对数据框进行分组

问题描述

我有一个以国家名称作为行索引的数据框,以及一个包含大陆/国家对的字典,如下所示:

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'}

我想使用 groupby 函数根据这些大陆对我的数据框进行分组。我曾考虑将各大洲合并为数据框的附加列,但这似乎很笨拙。在这种情况下,最佳做法是什么?

谢谢!

PS:我通常对 Python 中字典的使用以及如何将它们与数据帧结合使用有些困惑

编辑:我与国家的原始数据框有一些关于人口统计数据的列。按大陆分组后,我的工作流程的下一步是计算平均值标准差。等每个大陆。

标签: pythonpandas

解决方案


可以执行以下操作并按 grouped.groups 显示组,这将为您提供组及其索引。然而,将系列传递给 groupby 的唯一缩小是该系列将具有与数据帧相同的长度。

df=pd.DataFrame(ContinentDict.items())#dict to dataframe
df.columns=['Country','Continent']#dataframe columns
df.groupby('Continent').groups#groupby and get groups

推荐阅读