Pandas 具有可变滞后的分组差异

Pandas grouped differences with variable lags

我有一个包含三个变量的 pandas 数据框。第一个是分组变量,第二个是组 "scenario" 内的变量,第三个是结果。我想计算空条件、场景零和组内其他场景之间的组内差异。场景的数量因不同的组而异。我的数据如下:

ipdb> aDf FieldId Scenario TN_load 0 0 0 134.922952 1 0 1 111.787326 2 0 2 104.805951 3 1 0 17.743467 4 1 1 13.411849 5 1 2 13.944552 6 1 3 17.499152 7 1 4 17.640090 8 1 5 14.220673 9 1 6 14.912306 10 1 7 17.233862 11 1 8 13.313953 12 1 9 17.967438 13 1 10 14.051882 14 1 11 16.307317 15 1 12 12.506358 16 1 13 16.266233 17 1 14 12.913150 18 1 15 18.149811 19 1 16 12.337736 20 1 17 12.008868 21 1 18 13.434605 22 2 0 454.857959 23 2 1 414.372215 24 2 2 478.371387 25 2 3 385.973388 26 2 4 487.293966 27 2 5 481.280175 28 2 6 403.285123 29 3 0 30.718375 ... ... ... 29173 4997 3 53.193992 29174 4997 4 45.800968

我还必须编写函数来获得百分比差异等,但这让我感到难过。非常感谢任何帮助。

您可以在使用 groupbytransform 的组内了解场景 0 的差异,例如:

df['TN_load_0'] = df['TN_load'].groupby(df['FieldId']).transform(lambda x: x - x.iloc[0])

df

    FieldId Scenario    TN_load TN_load_0
0   0              0    134.922952  0.000000
1   0              1    111.787326  -23.135626
2   0              2    104.805951  -30.117001
3   1              0    17.743467   0.000000
4   1              1    13.411849   -4.331618
5   1              2    13.944552   -3.798915
6   1              3    17.499152   -0.244315