【发布时间】:2013-06-09 09:57:01
【问题描述】:
我有一个类似于以下文件的数据集
2013-05-30 06:00:41 173.199.116.171
2013-05-30 06:05:41 61.245.172.14
2013-05-30 06:10:42 74.86.158.106
2013-05-30 06:20:42 61.245.172.14
我想重新采样 20 分钟并获取特定 20 分钟时间段的命中数。(例如,在(06.00.00-06.20.00 或 06.40.00-07.00.00 等)之间。我可以打印整个数据文件的命中计数如下。
ips = df.groupby('IP').size()
如何获取每 20 分钟插槽的命中数?下面的代码只打印 '06:00:00' 和 '06:20:00' 之间的所有 IP。
df_s = df['IP'].resample('20t', how='count')
print df['IP'].between_time('06:00:00', '06:20:00')
【问题讨论】:
-
你的 df_s 是什么样的?我不认为我可以用 pandas 0.11 复制它。我的 6:00 广告位包含三个匹配项,而我的 6:20 广告位是 1。您是否尝试过设置
closed=和label=关键字?默认的 bins 定义可能与您的预期不同。 -
@Rutger Kassies 这个怎么样?但我必须指定时间段? new = DataFrame(df['IP'].between_time('06:00:00', '06:20:00')) t = new.groupby('IP').size()
标签: python pandas ipython-notebook