我想在一个数据集中计算各国国内生产总值的年度百分比变化。该数据集的格式如下,每行对应一个国家的年度记录:
| 国家|年份|寿命|国内生产总值|
| - ------|- ------|- ------|- ------|
| 智利|二○ ○ ○年|七十七点三|7.79e+10|
| 智利|二○ ○ ○年|七十七点三|7.79e+10|
| ...|...|...|...|
| 津巴布韦|二〇一四年|五十九点二|1.59电子+10|
| 津巴布韦|二〇一五年|六十点七|1.63电子+10|
理想情况下,我希望循环遍历各行,如果该行中的国家与前一行相同,则计算两行之间GDP的百分比变化。
到目前为止,我不得不逐个遍历每个国家,并将其添加到一个新列GDP%
中。我尝试将下面的代码放入一个循环中,并将国家名称作为一个变量(如下所示:'Chile'
),但是没有用。
gdp_data['GDP%'] = 0
gdp_country = gdp_data[gdp_data['Country'] == 'Chile']
gdp_data['GDP%'] = gdp_country['GDP'].pct_change()
有(正确的)更有效的方法吗?
1条答案
按热度按时间iqxoj9l91#
这似乎与this question about group by and percent change类似
您希望首先按国家和年份排序,然后按组排序,最后应用
.pct_change()
。尝试类似于以下内容的操作: