使用csv python行和列

嘿,我试图创build一个字典,通过使用python中的内置模块csv。 本质上它是一个名为weather.csv的excel文件,其中行字典中的键是列标题,值是该行的值。 我被卡住了,因为我不能让代码运行多列来同时生成两个字典。 此外,我得到一个关键的错误,它说打印行['col_list'],我不明白为什么发生。 col_list是每一行的标题。 这是我迄今为止的代码:

import csv def read_file(filename, col_list): filename = 'weather.csv' with open('weather.csv', 'r') as f: reader = csv.DictReader(f) for row in reader: print row['col_list'] 

这是我希望我的输出是。 我觉得这很简单,但是我很难搞清楚。

 print read_file('weather.csv', ['TemperatureF', 'VisibilityMPH']) {'TemperatureF': [30.9, 32.0, 32.0, 32.0, 32.0, 30.9 ...], 'VisibilityMPH': [10.0, 10.0, 10.0, 10.0, 4.0, 2.5 ...]} 

怎么样为每个列标题创build一个包含所有列的值的列表的字典? 例如 –

 import csv def read_file(filename, col_list, data={}): with open('weather.csv', 'r') as f: reader = csv.DictReader(f) for num, row in enumerate(reader): if num == 0: continue # skip if it's the first row, which has the headings for col in col_list: if not data.get(col): data[col] = list() data[col].append(row[col]) return data 

如果你可以使用pandas ,我认为这比csv模块更适合这个任务。

 import pandas as pd df = pd.read_csv(filename, names=col_list) dict_ = df.to_dict()