我有一个传感器,只收集我的数据的分钟/秒标签。因此,标签重复。例如:
['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']
答案 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