【发布时间】:2017-02-23 00:21:13
【问题描述】:
这是我的 csv excel 文件信息:
Receipt merchant Address Date Time Total price
25007 A ABC pte ltd 3/7/2016 10:40 12.30
25008 A ABC ptd ltd 3/7/2016 11.30 6.70
25009 B CCC ptd ltd 4/7/2016 07.35 23.40
25010 A ABC pte ltd 4/7/2016 12:40 9.90
如何才能将每行的“总价格”加在一起,前提是它们属于相同的“商家”、“日期”和“时间”,然后将它们组合在一个列表或字典中,例如:{[ 'A','3/7/2016', '19.0'], ['A',4/7/2016, '9.90'],..} 我以前的代码做了我想要的,只是我缺少计算每个相同日期和商家的总价格的代码。
from collections import defaultdict
from csv import reader
with open("assignment_info.csv") as f:
next(f)
group_dict = defaultdict(list)
for rec, name, _, dte, time, price in reader(f):
group_dict[name, dte].extend(time)
for v in group_dict.values():v.sort()
from pprint import pprint as pp
print 'Sales tracker:'
pp(dict(group_dict))
【问题讨论】:
-
您是按商家和日期分组,还是按商家、日期和时间分组?在您的示例中,您正在做的是前者。
-
我拥有的代码是将不同的时间分组到同一个商家和日期。我想做的是添加属于同一日期和商家的总价格,然后将其分组到其商家和日期。
-
考虑迁移到普通数据库
标签: python csv pandas design-patterns pandas-groupby