python将csv的每一行求和_如何在python中更有效地对csv文件中的列进行求和

本文介绍了如何使用Python的defaultdict和csv模块来高效地读取CSV文件,并对每一行进行求和操作。通过示例代码展示了如何处理数据并存储结果到一个字典中,以便进一步分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

python defaultdict

所以,你会发现很多有用的例子,下面是我的答案import csv

from collections import defaultdict

# slurp the data

data = list(csv.reader(open('points.csv')))

# massage the data

for i, row in enumerate(data[1:],1):

data[i] = [int(elt) if elt.isdigit() else elt for elt in row]

points = {} # an empty dictionary

for i, country in enumerate(data[0][2:],2):

# for each country, a couple country:defaultdict is put in points

points[country] = defaultdict(int)

for row in data[1:]:

opponent = row[1]

points[country][opponent] += row[i]

# here you can post-process points as you like,

# I'll simply print out the stuff

for country in points:

for opponent in points[country]:

print country, "vs", opponent, "scored",

print points[country][opponent], "points."

数据的示例输出是

^{pr2}$

编辑

如果您反对defaultdict,那么可以使用普通dict的.get方法,该方法允许您在{}对未初始化的情况下返回可选的默认值points[country] = {} # a standard empty dict

for row in data[1:]:

opponent = row[1]

points[country][opponent] = points[country].get(opponent,0) + row[i]

如您所见,它有点笨拙,但仍然可以管理。在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值