Python Pandas:计算满足条件时各列之间的时间
我想计算上次故障发生后的天数。 我的表格有datetime格式的日期列(Day),以及细分数量列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
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