【发布时间】:2021-09-16 20:20:13
【问题描述】:
我有一个包含时间序列数据的 df,我需要计算一行中增加/减少的次数。例如:
yr value1 value2 value3 value4 #increases #decreases
1976 1 2 1 4 ? ?
#increases 在这种情况下为 2,#decreases 为 1。最好的方法是什么?
【问题讨论】:
我有一个包含时间序列数据的 df,我需要计算一行中增加/减少的次数。例如:
yr value1 value2 value3 value4 #increases #decreases
1976 1 2 1 4 ? ?
#increases 在这种情况下为 2,#decreases 为 1。最好的方法是什么?
【问题讨论】:
您可以使用diff 从前一列中减去每一列。负值表示减少,而正值表示增加。然后你就可以直接数了。
diff_df = df.diff(axis=1)
df['increases'] = (diff_df > 0).sum(axis=1)
df['decreases'] = (diff_df < 0).sum(axis=1)
这里(diff_df > 0) 返回真/假数据帧,因此对它们求和只是计算“真”值 - 其中值为正数,也就是增加。
【讨论】:
axis=0,那么它会减去行数?