python - 使用字典对数据框进行分组
问题描述
我有一个以国家名称作为行索引的数据框,以及一个包含大陆/国家对的字典,如下所示:
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 中字典的使用以及如何将它们与数据帧结合使用有些困惑
编辑:我与国家的原始数据框有一些关于人口统计数据的列。按大陆分组后,我的工作流程的下一步是计算平均值标准差。等每个大陆。
解决方案
可以执行以下操作并按 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
推荐阅读
- reactjs - 如何使用功能组件在反应项目中集成必应地图
- java - org.eclipse.swt.widgets.Control 类型无法解析。它是从所需的 .class 文件中间接引用的
- git-svn - 禁止访问 '/svn/dukan/!svn/rvr/1/dukan01'
- mysql - 在这种情况下我应该标准化我的数据库吗?
- sql - 在sql server中选择表中的动态列
- android - 使用 Kotlin 扩展函数的 Lambda 时,如何限制从内部 Lambda 访问外部 Lambda 方法?
- flutter - Flutter:更改应用程序的语言,保留导航器状态(=路由堆栈)
- c++ - SYCL/DPC++ cpu 版本给出了正确的结果,但 gpu 给出了不正确的数据
- r - R 按月过滤 - 哈佛数据科学
- python - Pyspark 自动将列设置为可为空,即使架构指定它不是(仅在读取文件时)