groupby对象中不考虑新添加的列

时间:2020-05-27 09:34:29

标签: python pandas pandas-groupby

我有一个DataFrame top15,其国家名称作为索引和几列。 我正在尝试添加一个由两个现有列计算得出的新列,但groupby对象(按大陆分组)未考虑该列。 这就是我正在做的:

  • 我尝试了两种方法来创建新列,并打印DataFrame显示POPEST列:

top15['POPEST'] = top15['Energy Supply'] / top15['Energy Supply per Capita']

top15 = top15.assign(POPEST=[top15['Energy Supply'] / top15['Energy Supply per Capita']])

在对POPEST列进行分组(这是我唯一感兴趣的列)之后,在计算任何函数时不会出现:

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'}
grouped = top15.groupby(by=ContinentDict)
print(grouped.sum())

这会输出除POPEST列以外的所有基于该国家及其大陆的值的总和。

我在做什么错了?

编辑:top15是解析和合并不同的excel / csv文件的结果,这些列是: ['Rank', 'Documents', 'Citable documents', 'Citations', 'Self-citations', 'Citations per document', 'H index', 'Energy Supply', 'Energy Supply per Capita', '% Renewable', '2006', '2007', '2008', '2009', '2010', '2011', '2012', '2013', '2014', '2015']

这些行是ContinentDict键中列出的15个国家/地区。

0 个答案:

没有答案
相关问题