我有一个数据帧,它捕获从服务器发送的数据。服务器数据至少每5分钟更新一次。如果服务器在超过5分钟的时间内不发送数据,则直到再次发送数据为止的时间视为中断。我想把这些停电现象形象化为一个图表。数据框看起来像
timestamp temperature
2019-06-03 14:16:31.149132 27.17
2019-06-03 14:21:34.732911 27.13
2019-06-03 14:37:20.437143 27.16
2019-06-03 14:42:15.516416 27.13
2019-06-03 14:51:26.167553 27.19
2019-06-03 14:56:31.244862 27.02
2019-06-03 15:07:30.519727 27.1
2019-06-03 15:12:57.319953 27.12
2019-06-03 15:17:56.256638 27.12
我计算了两个时间戳之间的时间差,并标记为停电,计算了停电时间。 代码:
df['TimeDelta'] = df['timestamp'] - df['timestamp'].shift()
df['blackout'] = np.where(df['TimeDelta'] > datetime.timedelta(minutes = 5) , 1 , 0)
df['blackoutTime'] = np.where(df['blackout'] > 0, df['TimeDelta'] - datetime.timedelta(minutes = 5), 0)
df['blackoutMins'] = df['blackoutTime'] / np.timedelta64(1,'m')
这就增加了4列
TimeDelta blackout blackoutIime blackoutMins
0 days 00:04:57.310512000 0 0 days 00:00:00.000000000 0.0
0 days 00:05:03.583779000 1 0 days 00:00:03.583779000 0.05972965
0 days 00:15:45.704232000 1 0 days 00:10:45.704232000 10.7617372
0 days 00:04:55.079273000 0 0 days 00:00:00.000000000 0.0
0 days 00:09:10.651137000 1 0 days 00:04:10.651137000 4.17751895
0 days 00:05:05.077309000 1 0 days 00:00:05.077309000 0.08462181666666667
0 days 00:10:59.274865000 1 0 days 00:05:59.274865000 5.9879144166666665
0 days 00:05:26.800226000 1 0 days 00:00:26.800226000 0.44667043333333334
0 days 00:04:58.936685000 0 0 days 00:00:00.000000000 0.0
0 days 00:05:16.684317000 1 0 days 00:00:16.684317000 0.27807195
0 days 00:05:02.304786000 1 0 days 00:00:02.304786000 0.0384131
所以我想要的是,把停电的时间想象成x轴,把停电想象成y轴,我想要这样的东西
x轴为时间轴,y轴为停电时间。有人能帮忙做这个可视化吗
您希望
plt.step
与原始timestamp
相对:输出:
相关问题 更多 >
编程相关推荐