编写一个函数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类型的异常。”
有人可以帮忙吗?