我有一些日志文件,我正试图分析。使用一些正则表达式,我得到了以下结构:
月份/年,URL,计数
Sep 2016,/,100513 Sep 2016,/,68221 Oct 2016,/,536365 Oct 2016,/,362350 Oct 2016,/,89203 Nov 2016,/,526455 Nov 2016,/,351360 Nov 2016,/,88279 Dec 2016,/,538702 Dec 2016,/,156063 Dec 2016,/,89094 Jan 2017,/,535684 Jan 2017,/,105867 Jan 2017,/,87492 Feb 2017,/,483897 Feb 2017,/,80502 Feb 2017,/,47554 Mar 2017,/,434830 Mar 2017,/,72355 Mar 2017,/,43036
它有几行100 K长,所以我不能使用Excel或Google,所以我尝试将python中的计数按月和URL进行汇总。做这件事的好方法是什么?
发布于 2017-04-10 22:57:17
你可以用熊猫来做这个。您的示例是一个csv文件,因此下面的内容可以工作。
import pandas as pd
df = pd.read_csv('x.csv', parse_dates=True)
print df.groupby(['Month/Year', 'URL']).sum()发布于 2017-04-10 23:03:49
如果您需要一个没有外部依赖的解决方案(可能是一个严格的公司环境):
months = {}
urls = {}
with open ('./parsed-data.txt', 'r') as f:
lines = f.readlines()
for line in lines:
# [Month, URL, Count]
data = line.split(',')
months[data[0]] = months.setdefault(data[0], 0) + int(data[2])
urls[data[1]] = urls.setdefault(data[1], 0) + int(data[2])
# Do whatever with months and urls herehttps://stackoverflow.com/questions/43334083
复制相似问题