2017-06-19 62 views
0

我有一个传感器,它只为我的数据收集分钟/秒的标签。因为这个标签重复。例如:在熊猫中添加重复分钟/秒的小时

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

如何使用大熊猫日期时间(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

你问了一个问题,然后回答了自己在不到一分钟?我不明白.... –

+0

@DmitryPolonskiy回答自己的问题是StackOverflow的一部分...查看[帮助中心](https://stackoverflow.com/help/self-answer)或[this SO blog post] (https://stackoverflow.blog/2011/07/01/its-ok-to-ask-and-answer-your-own-questions/),其中杰夫阿特伍德(堆栈交换共同创始人)说:“它不仅仅是好的问和回答你自己的问题,这是明确的鼓励。“ – Alex

回答

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