是否有一种方法可以从原始列的cumsum()列中获得原始列?
例如:
df = pd.DataFrame({'Original': [1, 0, 0, 1, 0, 5, 0, np.NaN, np.NaN,4, 0, 0],
'CumSum': [1, 1, 1, 2, 2, 7, 7, np.NaN, np.NaN, 11, 11, 11]})
在上面的例子df中,是否有可能仅使用CumSum列获得原始列?
在我的原始数据集中,我有一个类似于CumSum列的列,我想获得原始的。我试图找到一个内置的函数,可以做,但没有找到任何。
您可以使用:
df['Original2'] = (df['CumSum'].ffill().diff()
.mask(df['CumSum'].isna())
.fillna(df['CumSum'])
)
输出:
Original CumSum Original2
0 1.0 1.0 1.0
1 0.0 1.0 0.0
2 0.0 1.0 0.0
3 1.0 2.0 1.0
4 0.0 2.0 0.0
5 5.0 7.0 5.0
6 0.0 7.0 0.0
7 NaN NaN NaN
8 NaN NaN NaN
9 4.0 11.0 4.0
10 0.0 11.0 0.0
11 0.0 11.0 0.0