计算Pandas数据框行之间的百分比差异

5
region  year      val
1.0     2015.0    6.775457e+05
1.0     2016.0    6.819761e+05
1.0     2017.0    6.864065e+05
2.0     2015.0    6.175457e+05
2.0     2016.0    6.419761e+05
3.0     2017.0    6.564065e+05

在上述数据框中,我想计算连续行之间的百分比差异,但仅针对相同地区值。我尝试了这个方法,但不确定是否有效。有什么更好的方法可以实现吗?
df.groupby(['region', 'year'])['val'].pct_change()
1个回答

8
你可以使用 DataFrameGroupBy.pct_change 来按列 region 进行分组:
df['new'] = df.groupby('region')['val'].pct_change()
print (df)
   region    year       val       new
0     1.0  2015.0  677545.7       NaN
1     1.0  2016.0  681976.1  0.006539
2     1.0  2017.0  686406.5  0.006496
3     2.0  2015.0  617545.7       NaN
4     2.0  2016.0  641976.1  0.039560
5     3.0  2017.0  656406.5       NaN

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接