2015-12-15 103 views
2

一個布爾變量我有一個很簡單的問題:我有一個熊貓數據框,看起來像:Python的大熊貓 - 總和小時

     y 
2015-12-09 09:00:00 1 
2015-12-09 08:48:00 1 
2015-12-09 08:24:00 1 
2015-12-09 08:12:00 1 
2015-12-09 08:00:00 1 
2015-12-09 06:36:00 1 
2015-12-09 06:24:00 1 
...     .. 
2015-12-08 10:12:00 1 
2015-12-08 10:00:00 1 
2015-12-08 09:48:00 1 
2015-12-08 09:36:00 1 

我要總結按小時布爾變量,所以我有一些樣子:

     y 
2015-12-09 09:00:00 1 
2015-12-09 08:00:00 4 
2015-12-09 07:00:00 0 
2015-12-09 06:00:00 2 
...     .. 
2015-12-08 10:00:00 2 
2015-12-08 09:00:00 2 

我不斷收到此錯誤:

AttributeError: 'numpy.ndarray' object has no attribute 'groupby' 

它似乎並不像一個很困難的問題,但我無法弄清楚。

+0

到目前爲止你有什麼? –

回答

1

該解決方案相對簡單,但它暗示假設在您的數據集中,0等於False(這對我來說似乎是合乎邏輯的)。如果是這樣,這個工程:

df.resample('1H', how='sum').fillna(0)

否則你可能不得不考慮通過你的數據排序的方式不同。

+0

這是我錯過的確切片段。非常感謝。 – MakleBirt

1

我是熊貓新手,但這裏是我的兩美分。

讓我們先從一個DataFrame看起來像這樣(像你這樣):

enter image description here

我也第一次被轉換該字符串日期時間爲日期時間字段:

data['datetime'] = pd.to_datetime(data['datetime']) 

然後,我創建了另一列,只有date值:

data['date'] = abc.datetime.dt.date 

和另一個hour值:

data['hour'] = data.datetime.dt.hour 

所以我data數據幀是這樣的:

enter image description here

最後,我只是datehour分組:

data.groupby(['date', 'hour']).size() 

而這些結果如下:

enter image description here

如果你不想改變你的數據框只是使用它的一個副本,如:

mutable_data = data 

然後更改mutable_data

我希望這會有所幫助。如果沒有,我很樂意接受建議。

+0

謝謝你的回答。我想過這樣做,但我認爲可能有更優雅和pythonic的方式。答案是Wouda。 – MakleBirt

+0

@MakleBirt謝謝你的話。我很高興你的回答正確。我也學到了! –