事件划分(有代码)

算例:
原始冰箱用电数据
在这里插入图片描述
事件划分代码:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# @Author: yudengwu
# @Date  : 2020/6/14
import pandas as pd

data=pd.read_csv('冰箱用电.csv')

#转换时间格式
data.loc[:, 'time'] = pd.to_datetime(data['time'],format='%Y-%m-%dT%H:%M:%S')

threshold = pd.Timedelta(minutes=10) #阈值为10分钟

data=data[data['value']>50]
d = data['time'].diff() > threshold #相邻时间作差分,比较是否大于阈值
data['事件编号'] = d.cumsum() + 1 #通过累积求和的方式为事件编号
print(data)

将用电功率大于50 且连续值超过10分钟的命名为1个事件 。
从该段用electricity功率小于50的状态向前找到最后一条功率小于50 的用electricity记录作为上一次用electricity事件结束;向后找到用electricity功率大于50的状态记录作为下一个用electricity事件的开始。

结果:
在这里插入图片描述
在这里插入图片描述

解释说明:
d = data[‘time’].diff() > threshold #相邻时间作差分,比较是否大于阈值
d的样子如下:
在这里插入图片描述
在这里插入图片描述
比较相邻两个样本的时间差,事件内是false,两个事件之间有一个True

来源于:@Author: yudengwu

猜你喜欢

转载自blog.csdn.net/kobeyu652453/article/details/106748657