我每天的交易数据的格式如下列表:转型的交易,以numpy的阵列
人,itemCode,transDate,量
我想用的人,itemCode总结量柱将我的结果转换为一个numpy数组。我正在删除日期字段。我有1.5GB的数据,所以更有效地我能做到这一点的更好...
这里的去的我怎么想的算法的一个小例子:
print input
A, 1, 2013-10-10, .5
A, 1, 2013-10-18, .75
A, 2, 2013-10-20, 2.5
B, 1, 2013-10-09, .25
B, 2, 2014-10-20, .8
myArray = transform(input)
print myArray
[[1.25,2.5],[.25,.8]]
任何关于如何思考有效地总结这些记录将不胜感激!
编辑:这是我到目前为止的代码:
from collections import defaultdict
dictObj = {}
rawData = 'subset.txt'
with open(rawData) as infile:
for line in infile:
parts = line.split(',')
key = (parts[0],parts[1])
val = float(parts[3])
if key in dictObj:
dictObj[key] += val
else:
dictObj[key] = val
print dictObj
你是不是与'numpy'结合?我发现['pandas'](http://pandas.pydata.org)对于这种类型的总和操作更为方便。 – DSM
请显示您到目前为止所尝试的内容以及效率不够高。请注意,如果您有一个1.5 GB的txt文件,它并不是一个非常大的数据量,所以即使是一个不理想的解决方案也能在合理的时间内运行。 – leeladam
是的,去大熊猫或把它扔进一个数据库,并使用一些老式的SQL – YXD