2017-10-05 113 views
1

我有一系列帶有datetimeindex的浮點數,我已經重新採樣到3小時的bin中。因此,我有一個索引包含Groupby爲小時(忽略一天)的日期時間

2015-01-01 09:00:00 
2015-01-01 12:00:00 
2015-01-01 15:00:00 
2015-01-01 18:00:00 
2015-01-01 21:00:00 
2015-01-02 00:00:00 
2015-01-02 03:00:00 
2015-01-02 06:00:00 
2015-01-02 09:00:00 

等等。我試圖總結與每天的每個時間相關的花車,例如09:00:00,所有日子。

我能想到用我有限的經驗做到這一點的唯一方法就是通過使用日期時間索引作爲另一列來將此係列轉換爲數據框,然後運行迭代以查看日期時間的小時位數是否相等彼此相加而不是總結這些值。我覺得這是非常低效的,可能不是「正確」的方式。任何幫助,將不勝感激!

+0

你只是想組datetime列到小時和分鐘聚合 –

+0

如果是的話,我可以幫助:) –

+0

或只是將它們轉換成實際的'datetime.time'和重新索引。 – cowbert

回答

3

IIUC:

In [116]: s 
Out[116]: 
2015-01-01 09:00:00 3 
2015-01-01 12:00:00 1 
2015-01-01 15:00:00 0 
2015-01-01 18:00:00 1 
2015-01-01 21:00:00 0 
2015-01-02 00:00:00 9 
2015-01-02 03:00:00 2 
2015-01-02 06:00:00 2 
2015-01-02 09:00:00 7 
2015-01-02 12:00:00 8 
Freq: 3H, Name: val, dtype: int32 

In [117]: s.groupby(s.index - s.index.normalize()).sum() 
Out[117]: 
00:00:00  9 
03:00:00  2 
06:00:00  2 
09:00:00 10 
12:00:00  9 
15:00:00  0 
18:00:00  1 
21:00:00  0 
Name: val, dtype: int32 

或:

In [118]: s.groupby(s.index.hour).sum() 
Out[118]: 
0  9 
3  2 
6  2 
9  10 
12  9 
15  0 
18  1 
21  0 
Name: val, dtype: int32 
+0

作品像魔術,謝謝 –

+0

@ K.Lou,很高興我能幫助:) – MaxU

相關問題