如图所示,需要查找出信号a连续3s大于0.2,信号b连续5秒大于2,信号c来纳许4s大于8的那条时间的数据,即图中,三者全为绿色的那条数据
import pandas as pd
# 读取示例表格数据
df = pd.read_excel('Threshold_Value.xlsx')
# print(df)
# 设置条件1、条件2和条件3
#窗口大小: window=3 窗口内满足条件的数量: .sum() == 3(求和的是窗口内3个元素是否满足条件的bool值的series)
condition1 = (df['signal_a'] > 0.2).rolling(window=3).sum() == 3
condition2 = (df['signal_b'] > 2).rolling(window=5).sum() == 5
condition3 = (df['signal_c'] > 8).rolling(window=4).sum() == 4
# 应用条件并找出满足条件的时间点
result = df[condition1 & condition2 & condition3]
# result = df[condition3]
# 打印结果
print(result[['time(s)', 'signal_a', 'signal_b', 'signal_c']])
输出
time(s) signal_a_3 signal_b signal_c
6 00:00:07 0.7 7 17
7 00:00:08 0.8 8 18
18 00:00:19 1.0 11 17
19 00:00:20 1.1 12 18
20 00:00:21 1.2 13 19