我在熊猫数据帧中有一个月的设备传感器数据,看起来像这样:
timestamp uptime
2019-07-01 07:10:00 504
2019-07-01 07:11:00 504
2019-07-01 07:12:00 504
2019-07-01 07:13:00 504
...
2019-07-01 08:45:00 505
...
2019-07-30 23:59:00
时间戳是每分钟的快照,正常运行时间是累积的,表示小时数。
我的问题是如何计算每天的正常运行时间?
提前致谢
将GroupBy.agg
bySeries.dt.date
与 lambda 函数一起使用,以获得差异最大值和最小值:
print (df)
timestamp uptime
0 2019-07-01 07:10:00 504
1 2019-07-01 07:11:00 505
2 2019-07-02 07:12:00 507
3 2019-07-02 07:13:00 510
4 2019-07-02 08:45:00 512
df['timestamp'] = pd.to_datetime(df['timestamp'])
df = (df.groupby(df['timestamp'].dt.date)['uptime']
.agg(lambda x: x.max() - x.min())
.reset_index(name='hours'))
print (df)
timestamp hours
0 2019-07-01 1
1 2019-07-02 5