我可以知道有什么更好的方法来获得系统停机期吗?
该系统将检测值并每20分钟传送一次读数。
此代码用于标识没有测量任何数据的0.00的类似数据。然而,我想知道它在这个连续的时间戳中丢失了多久的数据。就像一个例子,2:20,2,40,3:00am具有相同的值,因此总损失时间是1小时。数据文件中的启动时间,结束时间。请帮帮忙。
df_same_values = df.groupby((df['Water Quality Sensor'].shift() != df['Water Quality Sensor']).\
cumsum()).filter(lambda x: len(x) >= 3) Water Quality Sensor
date
2022-01-01 02:20:00 2.500000
2022-01-01 02:40:00 2.500000
2022-01-01 03:00:00 2.500000
2022-01-01 09:00:00 0.000000
2022-01-01 09:20:00 0.000000
2022-01-01 09:40:00 0.000000
2022-01-01 10:00:00 0.000000
2022-01-01 10:20:00 0.000000
2022-01-01 10:40:00 0.000000
2022-01-01 12:40:00 0.000000
2022-01-01 13:00:00 0.000000
2022-01-01 13:20:00 0.000000
2022-01-01 18:00:00 2.500000
2022-01-01 18:20:00 2.500000
2022-01-01 18:40:00 2.500000
2022-01-01 19:00:00 2.500000
2022-01-02 03:00:00 2.500000
2022-01-02 03:20:00 2.500000
2022-01-02 03:40:00 2.500000
2022-01-02 04:00:00 2.500000
2022-01-02 04:20:00 2.500000
2022-01-02 04:40:00 2.500000
2022-01-02 05:00:00 2.500000
2022-01-02 05:20:00 2.500000
2022-01-02 18:00:00 2.500000
2022-01-02 18:20:00 2.500000
2022-01-02 18:40:00 2.500000
2022-01-02 19:00:00 2.500000
2022-01-02 19:20:00 2.500000发布于 2022-06-20 21:25:22
如果您的数据确实如此小,那么为什么不在记录适当值的同时遍历行呢?
down_flag = False
down_start = None
down_stop = None
for i, row in df.iterrows():
if row['Water Quality Sensor'] == 0 and down_flag == False:
down_flag = True
down_start = row['date']
if row['Water Quality Sensor'] > 0 and down_flag == True:
down_flag = False
down_stop = df.loc[i-1, 'date']
down_time = down_stop - down_start
print(down_time)给出
0 days 04:20:00如预期的那样。注意,如果有多个停机,这只记录停机的最后一部分。
https://stackoverflow.com/questions/72690249
复制相似问题