我正在使用具有以下结构的 CSV:
"2012-09-01 20:03:15","http://example.com"
数据是我浏览历史的清理转储。我有兴趣计算每天的前五个唯一域。这是我到目前为止所拥有的:
from urlparse import urlparse
import csv
from collections import Counter
domains = Counter()
with open("history.csv") as f:
for row in csv.reader(f):
d = row[0]
dt = d[11:19]
dt = dt.replace(":","")
dd = d[0:10]
if (dt < "090000") and (dt > "060000"):
url = row[1]
p = urlparse(url)
ph = p.hostname
print dd + "," + dt + "," + ph
domains += Counter([ph])
t = str(domains.most_common(20))
使用 d、dt 和 dd,我将日期和时间分开。对于上面的示例行,dt = 20:03:15,dd = 2012-09-01。“if (dt < "090000") and (dt > "060000")” 只是说我只对计算早上 6 点到 9 点之间访问的网站感兴趣。我怎么说“只计算每天早上 6 点之前访问的前五个网站”?任何一天都有数百行,并且这些行按时间顺序排列。