gpt4 book ai didi

python - 在 Python 中读取 csv 文件并创建字典

转载 作者:太空宇宙 更新时间:2023-11-03 13:02:25 26 4
gpt4 key购买 nike

我有一个这样的 csv 数据集:

A, 10, USA
B,30, UK
C,4,IT
A,20,UK
B,10,USA

我想读取此 csv 行并提供以下输出:

A has ran 30 miles with average of 15. 
B has ran 30 miles with average of 20.
C has ran 4 miles with average of 4.

到目前为止,我的解决方案是读取 csv 数据并将它们转换为字典,然后遍历它们以查看“A”重复了多少次以及它必须计算哪些值来计算平均值并最终生成结果.我已经编写了这段代码,但我很难有效地计算 A 重复的次数并将英里数相加以创建我的最终输出。在 Python 中做这个有什么想法吗?在 C# 中执行此操作对我来说有点容易,但我不太擅长 Python。

def main(filename):
f = open(filename,'r')
labels = ['name','miles','country']
data = csv.DictReader(f,labels,delimiter=',')
for line in data:
print (line['name']+" " + "has ran" +" "+ line['miles']+" "+"miles")

f.close()

最佳答案

您可以使用defaultdict 来存储值,然后将它们打印出来:

import csv

from collections import defaultdict

with open(filename, 'r') as handle:
reader = csv.DictReader(handle, ['name', 'miles', 'country'])
data = defaultdict(list)

for line in reader:
data[line['name']).append(int(line['miles']))

for runner, distances in data.items():
print '{} ran a total of {} miles and an average of {} miles'.format(
runner, sum(distances), sum(distances) / float(len(distances))
)

关于python - 在 Python 中读取 csv 文件并创建字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15400165/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com