在pandas

时间:2017-06-19 15:27:12

标签: python pandas

我有一个传感器,只收集我的数据的分钟/秒标签。因此,标签重复。例如:

['00:00',
 '20:00',
 '40:00',
 '00:00',
 '20:00',
 '40:00',
 '00:00',
 '20:00',
 '40:00']

每次分钟数减少时,如何使用pandas datetimes(to_datetime)添加一小时?所以我最终得到了类似的东西:

['00:00:00',
 '00:20:00',
 '00:40:00',
 '01:00:00',
 '01:20:00',
 '01:40:00',
 '02:00:00',
 '02:20:00',
 '02:40:00']

1 个答案:

答案 0 :(得分:2)

使用shift将之前的分钟/秒与当前和cumsum进行比较,以获得小时偏移。然后转换这些小时偏移to_timedelta并将它们添加到原始值。

import pandas as pd

l = ['00:00', '20:00', '40:00'] * 3

s = pd.to_datetime(pd.Series(l), format='%M:%S')
hours = pd.to_timedelta((s.shift() > s).cumsum(), unit='h')
(s + hours).dt.strftime('%H:%M:%S')

给出:

0    00:00:00
1    00:20:00
2    00:40:00
3    01:00:00
4    01:20:00
5    01:40:00
6    02:00:00
7    02:20:00
8    02:40:00
dtype: object