尝试计算时间序列中的累积减少:
示例:
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])
答案 0 :(得分:0)
我认为你有点过于复杂了,这应该可以解决问题:
-df['C'].diff().clip(None,0).sum()
返回 60