Python Aggregate C列基于A& B

时间:2017-04-10 22:49:18

标签: python-2.7

我有一些我想要分析的日志文件。使用一点regex我得到了以下结构:

月/年,网址,计数

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

它有几十条线,所以我不能使用Excel或Google表格,所以我试图在python中按月和URL聚合Count。有什么好方法可以做到这一点?

2 个答案:

答案 0 :(得分:1)

你可以使用熊猫来做到这一点。您的示例是一个csv文件,因此以下内容可以正常工作。

import pandas as pd

df = pd.read_csv('x.csv', parse_dates=True)

print df.groupby(['Month/Year', 'URL']).sum()

答案 1 :(得分:0)

如果您需要没有外部依赖关系的解决方案(可能是严格的企业环境):

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 here