擅长:python、mysql、java
<p>您可以使用已经建议过的<code>itertools.groupby</code>,或者使用已经是生成器和<code>collections.defaultdict</code>的<code>csv.reader</code>对象来聚合value列。。。你知道吗</p>
<pre><code>import csv
from collections import defaultdict
summary = defaultdict(list)
csvin = csv.reader(open('testdata.txt'), delimiter='|')
for row in csvin:
summary[(row[1].split(' ')[0], row[2])].append(int(row[5]))
csvout = csv.writer(open('testdata.out','wb'), delimiter='|')
for who, what in summary.iteritems():
csvout.writerow( [' '.join(who), len(what), sum(what)] )
</code></pre>
<p>如果您正在研究更复杂的交叉制表/数据透视等,那么很值得一看<a href="http://pandas.pydata.org/" rel="nofollow">pandas</a>,它是一个基于<code>numpy</code>的非常有用的库</p>