我有一个数据帧,这是读取csv的结果。它包含日期时间列和与事件相关的数据。我需要用20分钟的统计数据来计算平均日,在下面的代码中我使用' mean'举个例子。
修改 我的数据是观察结果。这意味着并非所有垃圾箱都包含数据。但是在计算平均值时必须考虑这个零计数:mean = count / #days
此代码有效,但这是要走的路吗?它看起来很复杂,我想知道我是否真的需要一个BinID而且不能在一天中的时间组。
select exists (select true where false);
exists
--------
f
答案 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]