我正在使用Github提供的MoMa数据库。例如,有艺术品,艺术家,民族和性别专栏。我想按民族对艺术家进行分组,但按大陆和每个大陆细分的女性和男性艺术家进行添加和简化。我创建了一个列表,每个大陆都有其各自的国家。
- 我尝试使用pycountry,但不知何故,我只是得到错误,模块不存在(即使我安装了它)
- 我尝试了.isin(),但它也不适合于此
- 我也尝试了.groupby(),但它也不起作用。
有人能帮我做到这一点吗?
这是 Dataframe 。(https://i.stack.imgur.com/9OUHu.png)
我需要列洲,性别,总行洲名_女性洲名_男性
洲/性别合计拉丁美洲/女.10拉丁美洲/男.11拉丁美洲/南欧/女.14欧洲/男.20
等等
我们的想法是事后策划
1条答案
按热度按时间h43kikqp1#
你对大陆和国家的列表有了很好的直觉。这样一个问题的规范解决方案通常包括:
1.获取一个将国家(或您的国籍)与大洲联系起来的表:
| 国籍|洲|
| --------------|--------------|
| 法语|欧洲|
| 美国人|北美地区|
| 奥地利人|欧洲|
| ……|……|
1.将此表连接到原始数据集。您应该将其保留连接到主数据集,这样您将获得与图片相同的新数据集,但具有Continent列。
1.现在你已经有了一个洲列,你可以执行你正在寻找的聚合。要做到这一点,你必须按洲和性别分组,并计算行数。假设你在你的数据框中有洲列,它看起来像这样:
df.groupby(['continent', 'gender']).count()
如果有帮助就告诉我。