2017-06-19 63 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