linux 中获取csv某一列的值,在csv文件python中通过另一列获取一列的值

可以使用list的defaultdict按ID列对数据分组。然后使用sum()生成总数。在from collections import defaultdict

with open('datafile.csv') as f:

d = defaultdict(list)

next(f) # skip first header line

next(f) # skip second header line

for line in f:

id_, value, amount = line.split()

d[id_].append((int(value), int(amount)))

# sum and average of column Value by ID

for id_ in d:

total = sum(t[0] for t in d[id_])

average = total / float(len(d[id_]))

print('{}: sum = {}, avg = {:.2f}'.format(id_, total, average))

输入数据的输出:

^{pr2}$

它也可以用标准的Python字典完成。解决方案非常相似:with open('datafile.csv') as f:

d = {}

next(f) # skip first header line

next(f) # skip second header line

for line in f:

id_, value, amount = line.split()

d[id_] = d.get(id_, []) + [(int(value), int(amount))]

# sum and average of column Value by ID

for id_ in d:

total = sum(t[0] for t in d[id_])

average = total / float(len(d[id_]))

print('{}: sum = {}, avg = {:.2f}'.format(id_, total, average))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值