for循环的变化百分比

时间:2018-09-18 00:32:36

标签: python pandas for-loop

我有一个数据框,其中已将“地区”和“年份”设置为多级索引。我想计算每个地区每年每一列(“ DEM”,“ REP”等)的百分比变化。

enter image description here

我已咨询this previous SO question并尝试使用以下代码:

for idx, districts_bydistrict_select in districts_bydistrict.groupby(level=[0, 1]):
    y = districts_bydistrict.pct_change()
    print(pd.DataFrame(y))

但是,当有新的区时,它无法识别开始pct_change()计算。我意识到我可能缺少for循环的一部分。

1 个答案:

答案 0 :(得分:1)

您只需在groupby中指定级别。

districts_bydistrict.groupby(level='Year').pct_change()

您可以取消堆叠区域,以便仅在索引中有时间,计算pct_change,然后重新堆叠区域。

districts_bydistrict.unstack('DISTRICTS').pct_change().stack()