计算pandas数据帧行之间的百分比差异

时间:2017-08-15 05:51:12

标签: python pandas

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 个答案:

答案 0 :(得分:5)

您可以使用regionDataFrameGroupBy.pct_changedf['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

{{1}}