假设我想创建一个新列来计算自状态为 1 以来的天数。例如,当前列将是下面的前三列。第四列是我想要得到的。
Index State Days Since_Days
1 1 0 0
2 0 20 20
3 0 40 40
4 1 55 55
5 1 60 5
6 1 70 10
在不求助于 for 循环的情况下,pandas 的方法是什么?
要减去的值可以通过以下方式形成:
ser = df['Days'].where(df['State']==1, np.nan).ffill().shift()
如果您从原始的 Days 列中减去它,您将得到:
df['Days'].sub(ser, fill_value=0).astype('int')
Out:
0 0
1 20
2 40
3 55
4 5
5 10
Name: Days, dtype: int64
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句