Python Pandas:计算满足条件时各列之间的时间

Python Pandas:计算满足条件时各列之间的时间,python,pandas,datetime,difference,Python,Pandas,Datetime,Difference,我想计算上次故障发生后的天数。 我的表格有datetime格式的日期列(Day),以及细分数量列 print (df) Day Number of breakdowns 0 2017-01-09 1.0 1 2017-01-12 0.0 2 2017-01-13 0.0 3 2017-01-14 0.0 4 2017-01

我想计算上次故障发生后的天数。 我的表格有datetime格式的日期列(Day),以及细分数量列

print (df)
          Day  Number of breakdowns
0  2017-01-09                   1.0
1  2017-01-12                   0.0
2  2017-01-13                   0.0
3  2017-01-14                   0.0
4  2017-01-16                   3.0
5  2017-01-17                   0.0
6  2017-01-18                   0.0
7  2017-01-19                   1.0
8  2017-01-20                   0.0
9  2017-01-21                   0.0
10 2017-01-23                   1.0

首先比较每组转换值的非等by和累积和by的故障数,因此可能减去时间增量并将其转换为:


由于没有原始数据,我可以建议通过
.nonzero()
函数获取细分索引,然后将每个零条目与最近填充的值进行比较。非常感谢!工作完美
df['Day'] = pd.to_datetime(df['Day'])

s = df.groupby(df['Number of breakdowns'].ne(0).cumsum())['Day'].transform('first')
df['New'] = (df['Day'] - s).dt.days
print (df)
          Day  Number of breakdowns  New
0  2017-01-09                   1.0    0
1  2017-01-12                   0.0    3
2  2017-01-13                   0.0    4
3  2017-01-14                   0.0    5
4  2017-01-16                   3.0    0
5  2017-01-17                   0.0    1
6  2017-01-18                   0.0    2
7  2017-01-19                   1.0    0
8  2017-01-20                   0.0    1
9  2017-01-21                   0.0    2
10 2017-01-23                   1.0    0