我有一个csv文件,它有两列,第一列是一个人的Id,第二列是速度。我想找到每个ID的平均速度。
我的csv文件如下所示:
0001;12
0001;0.14
0001;96
0002;19
0002;20
0002;6.3
0003;25
0003;1.9
0003;16
我是Python的初学者,并不知道很多Python技巧。我所知道的是,我的代码可能太复杂了。
答案 0 :(得分:1)
以下是如何从文件中读取数据:
import csv
from pprint import pprint
filename = 'velocities.csv'
# read user velocities from file into a dictionary of lists
user_velocities = {}
with open(filename, newline='') as csvfile:
for user_id, velocity in csv.reader(csvfile, delimiter=';'):
user_velocities.setdefault(user_id, []).append(float(velocity))
print('User velocities read from file:', filename)
pprint(user_velocities)
输出:
User velocities read from file: velocities.csv
{'0001': [12.0, 0.14, 96.0],
'0002': [19.0, 20.0, 6.3],
'0003': [25.0, 1.9, 16.0]}
现在,您应该很容易弄清楚如何根据与每个用户ID关联的值列表计算user_velocities
字典中每个用户ID的平均速度。
(提示:使用内置的sum()
和len()
函数。)