熊猫小组获得平均一天

时间:2017-04-19 11:28:13

标签: python python-3.x pandas aggregate grouping

我有一个数据帧,这是读取csv的结果。它包含日期时间列和与事件相关的数据。我需要用20分钟的统计数据来计算平均日,在下面的代码中我使用' mean'举个例子。

修改 我的数据是观察结果。这意味着并非所有垃圾箱都包含数据。但是在计算平均值时必须考虑这个零计数:mean = count / #days

此代码有效,但这是要走的路吗?它看起来很复杂,我想知道我是否真的需要一个BinID而且不能在一天中的时间组。

select exists (select true where false);
 exists 
--------
 f

1 个答案:

答案 0 :(得分:0)

IIUC:

In [124]: df.groupby(['i/o',df.date.dt.hour*3 + df.date.dt.minute//20]) \
            .agg(['count','sum','mean'])
Out[124]:
          move
         count sum mean
i/o date
in  0        1   1    1
    1        2   2    1
    2        2   2    1
    3        2   2    1
    4        2   2    1
    5        2   2    1
    6        2   2    1
    7        2   2    1
    8        2   2    1
    9        2   2    1
...        ...  ..  ...
out 62       2   2    1
    63       2   2    1
    64       2   2    1
    65       2   2    1
    66       2   2    1
    67       2   2    1
    68       2   2    1
    69       2   2    1
    70       2   2    1
    71       1   1    1

[144 rows x 3 columns]