2015-12-15 144 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谢谢你的话。我很高兴你的回答正确。我也学到了! –