使用 Python 和 Matplotlib 绘制传感器数据

Graph Sensor Data with Python and Matplotlib

我有一个这样的 csv 文件:

sensor_name, time
bed, 01:08:40
bed, 01:09:33
bed, 01:09:51
bed, 01:11:06
kitchen, 01:27:57
kitchen, 01:30:03
living, 01:32:51
living, 01:33:06
living, 01:34:06
living, 01:35:06
living, 01:37:06
bed, 01:40:50
bed, 01:41:06
bed, 01:42:54
bed, 01:45:06
living, 01:50:30

为了跟踪运动,我只想使用 matplotlib 绘制传感器发生变化的值,即变化前的第一个和最后一个值,并消除其余部分。预期结果如下所示:

sensor_name, time
bed, 01:08:40
bed, 01:11:06
kitchen, 01:27:57
kitchen, 01:30:03
living, 01:32:51
living, 01:37:06
bed, 01:40:50
bed, 01:45:06
living, 01:50:30

谢谢,祝一切顺利。

您可以通过检查 sensor_name 是否更改来计算掩码(使用 shift 获取下一行):

mask = df['sensor_name'].ne(df['sensor_name'].shift())

# change + previous row
df[mask|mask.shift(-1)]

输出:

   sensor_name      time
0          bed  01:08:40
3          bed  01:11:06
4      kitchen  01:27:57
5      kitchen  01:30:03
6       living  01:32:51
10      living  01:37:06
11         bed  01:40:50
14         bed  01:45:06
15      living  01:50:30