2017-04-03 56 views
-4

我有一个csv文件,它有两列,第一个是一个人的Id,第二个是速度。我想找到每个ID的平均速度。如何计算csv文件中列的速度?

我的CSV文件看起来像这样:

0001;12 
0001;0.14 
0001;96 
0002;19 
0002;20 
0002;6.3 
0003;25 
0003;1.9 
0003;16 

我在Python初学者,真的不知道很多的Python技巧。我所知道的是,我可能太复杂了我的代码。

+2

也许从这里开始:13.1。 csv - CSV文件读写](https://docs.python.org/2/library/csv.html) –

+1

复杂的代码在哪里?你使用的是什么版本的Python? – martineau

+0

我使用Python 3.5 –

回答

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字典从与每个值相关联的值列表中。

(提示:使用内置sum()len()功能)

+0

非常感谢主席先生 –