如何计算csv文件中列的速度?

时间:2017-04-03 17:21:26

标签: python python-3.x

我有一个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技巧。我所知道的是,我的代码可能太复杂了。

1 个答案:

答案 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()函数。)