擅长:python、mysql、java
<p>好的,那么您希望这些行按年份汇总:</p>
<pre><code>import csv
from collections import defaultdict
with open("songfestival.csv", "r") as ifile:
reader = csv.DictReader(ifile)
country_columns = [k for k in reader.fieldnames if k not in ["Year","Country"]]
data = defaultdict(lambda:defaultdict(int))
for line in reader:
curr_country = data[line["Country"]]
for country_column in country_columns:
curr_country[country_column] += int(line[country_column])
with open("songfestival_aggr.csv", "w") as ofile:
writer = csv.DictWriter(ofile, fieldnames=country_columns+["Country"])
writer.writeheader()
for k, v in data.items():
row = dict(v)
row["Country"] = k
writer.writerow(row)
</code></pre>
<p>我有权把它输出到另一个csv文件中。数据结构非常容易出错,因为它取决于列的顺序。最好在dict中使用中间dict来为聚合指定名称->;请参阅@gboffi对您的问题的评论。在</p>