如何计算数据帧的增量?

时间:2020-02-18 06:22:49

标签: python pandas dataframe delta

A   B   C   Delta
**1 Jan 10  0**
1   Feb 20  10
1   Mar 40  30
**2 Jan 10  0**
2   Feb 30  20
2   Mar 20  10
2   Oct 40  30
**3 Jan 10  0**
3   Feb 20  10
3   Mar 30  20
3   Oct 40  30
3   Dec 50  40

如何计算增量列?

我在任何地方都找不到。 请告诉我。如何计算

1 个答案:

答案 0 :(得分:1)

Series.sub减去C列,并按GroupBy.transformGroupBy.first每组重复第一个值:

df['Delta'] = df['C'].sub(df.groupby('A')['C'].transform('first'))
print (df)
    A    B   C  Delta
0   1  Jan  10      0
1   1  Feb  20     10
2   1  Mar  40     30
3   2  Jan  10      0
4   2  Feb  30     20
5   2  Mar  20     10
6   2  Oct  40     30
7   3  Jan  10      0
8   3  Feb  20     10
9   3  Mar  30     20
10  3  Oct  40     30
11  3  Dec  50     40

详细信息

print (df.groupby('A')['C'].transform('first'))
0     10
1     10
2     10
3     10
4     10
5     10
6     10
7     10
8     10
9     10
10    10
11    10
Name: C, dtype: int64