首先需要定义一个函数,用于判断时序数据是否发生频率变化异常。这里以每小时的数据为例,设置阈值为10:
import pandas as pd
def check_frequency_anomaly(data, threshold=10):
# 将数据转换为pandas的DataFrame格式
data = pd.DataFrame(data, columns=['timestamp', 'value'])
# 计算每小时内的数据总和
data_by_hour = data.groupby(data['timestamp'].dt.hour).sum()
# 计算前后两小时数据的差值
diff = data_by_hour.diff()
# 找到差值绝对值大于阈值的小时
anomaly_hours = diff[abs(diff['value']) > threshold].index.tolist()
if anomaly_hours:
return True, anomaly_hours
else:
return False, None