csv文件的特定列中的频率:键错误

时间:2018-04-01 04:12:07

标签: python csv dictionary

编写一个函数freq_column,它接受一个字符串的文件名和一个字符串的列名作为输入。它应该在具有文件名的csv文件中读取,并返回一个字典,其中包含作为键所指示的列中出现的任何唯一项,以及项的频率值。您应该假设csv文件有一个标题行。

Item,Price,Location
1,2.50,Melbourne
1,1.50,Perth
2,5.52,Melbourne
1,2.50,Sydney
2,1.00,Perth
3,6.12,Brisbane

freq_column("data.csv", "Item") 
{'1': 3, '2': 2, '3': 1}
freq_column("data.csv", "Location")
{'Melbourne': 2, 'Perth': 2, 'Sydney': 1, 'Brisbane': 1}

这是我写的代码

import csv
from collections import defaultdict as dd 

def freq_column(file_name, column):
    with open(file_name) as readfile:
        reader = csv.DictReader(readfile)
        dic=dd(int)
        for row in reader:
            dic[row[column]]+=1
    return dic

当我测试我的代码时,会出现一个错误:“列名不存在。您的提交引发了KeyError类型的异常。”

有人可以帮忙吗?

0 个答案:

没有答案