Pandas 熊猫石斑鱼整数频率
我想把熊猫数据帧按小时分组,不考虑日期 我的数据:Pandas 熊猫石斑鱼整数频率,pandas,Pandas,我想把熊猫数据帧按小时分组,不考虑日期 我的数据: id opened_at count sum 2016-07-01 07:02:05 1 46.14 154 2016-07-01 07:34:02 1 479 2016-07-01 10:10:01 1 127.14 2016-07-02 12:01:04 1 8.14 2016-07-02 1
id opened_at count sum
2016-07-01 07:02:05 1 46.14
154 2016-07-01 07:34:02 1 479
2016-07-01 10:10:01 1 127.14
2016-07-02 12:01:04 1 8.14
2016-07-02 12:00:50 1 18.14
我可以使用以下方法按小时分组并考虑日期
groupByLocationDay = df.groupby([df.id,
pd.Grouper(key='opened_at', freq='3h')])
id opened_at count sum
06:00:00 2 4296.14
154 09:00:00 56 43824.93
12:00:00 203 152335.28
我得到以下信息
id opened_at count sum
2016-07-01 06:00:00 2 4296.14
154 2016-07-01 09:00:00 46 43716.79
2016-07-01 12:00:00 169 150827.14
2016-07-02 12:00:00 17 1508.14
2016-07-02 09:00:00 10 108.14
我怎样才能只按小时分组,使其看起来如下所示
groupByLocationDay = df.groupby([df.id,
pd.Grouper(key='opened_at', freq='3h')])
id opened_at count sum
06:00:00 2 4296.14
154 09:00:00 56 43824.93
12:00:00 203 152335.28
原始数据是以小时为基础的,因此我需要获得3h频率。
谢谢 您可以这样做:
In [134]: df
Out[134]:
id opened_at count sum
0 154 2016-07-01 07:02:05 1 46.14
1 154 2016-07-01 07:34:02 1 479.00
2 154 2016-07-01 10:10:01 1 127.14
3 154 2016-07-02 12:01:04 1 8.14
4 154 2016-07-02 12:00:50 1 18.14
5 154 2016-07-02 08:34:02 1 479.00
In [135]: df.groupby(['id', df.opened_at.dt.hour // 3 * 3]).sum()
Out[135]:
count sum
id opened_at
154 6 3 1004.14
9 1 127.14
12 2 26.28
groupByLocationDay=df.groupby([df.id,df['opened_'at'].dt.hour])
有效吗?我需要获得频率='3h'。有什么想法吗?我的数据是按小时计算的,Grouper已经按日期将其分组为3小时的频率,如果我再次尝试使用group by,我会得到KeyError:无属性id或打开的\u atAwesome谢谢!我想用石斑鱼按3小时的频率分组,然后用你的方法重置索引并再次分组。但这更好。@bumbambum,我很乐意帮忙!:)谢谢你的回答!