计算熊猫时间序列的累积减少

时间:2021-03-19 00:08:08

标签: pandas dataframe

尝试计算时间序列中的累积减少:

示例:

time = ['00:00','00:01','00:03','00:05','00:06','00:10']
data = [100,50,60,50,80,100]
df = pd.DataFrame({'timestamp':time,'C':data})

该函数应该计算 60 点下降,但我使用以下方法只得到 50:

C = 'C'
# Calculate when c drops (added 1000 to see first value)
c_drop = df[C] <= df[C].shift().fillna(100000)
# Get the value drop timestamps
c = df[ c_drop ][C]
# Calculate difference  ΔC
ΔC = (c.shift() - c).fillna(0)
# Sum only the positive ΔC
result = sum(ΔC[ΔC>0])

1 个答案:

答案 0 :(得分:0)

我认为你有点过于复杂了,这应该可以解决问题:

-df['C'].diff().clip(None,0).sum()

返回 60