跨列时间序列的数据帧中的条件计数
如何有条件地在每一行中计算上一个日期中有值然后在下一个日期减少到 0 的实例数?
df:
Jan Feb Mar Apr
A 1 2 3 0
B 0 0 0 0
C 1 0 2 0
D 0 0 0 1
想得到:df_to_zero_count
Count
A 1
B 0
C 2
D 0
我已经尝试了应用和迭代列的一些组合,但似乎无法使其工作。
回答
((df.diff(axis=1) < 0) & (df == 0)).sum(axis=1)
您可以检查行上的差异小于 0(表示减少)的位置,并且单元格的值也为 0。
输出:
((df.diff(axis=1) < 0) & (df == 0)).sum(axis=1)
0 1
1 0
2 2
3 0
dtype: int64