将CSV数据从文件读入字典

c7rzv4ha  于 2023-01-10  发布在  其他
关注(0)|答案(2)|浏览(178)

我正在尝试从CSV文件创建字典。csv文件的第一列包含唯一键,第二列包含值。csv文件的每一行代表字典中唯一的键、值对。我尝试使用csv.DictReader和csv.DictWriter类,但是我只能弄清楚如何为每一列生成一个新的字典。我想要一个字典。下面是我尝试使用的代码:

def read_data(file_name):
    data = {}
    with open(file_name, "r") as f:
        reader = csv.reader(f, delimiter = ',')
        number_columns = len(next(reader))
        for d in range (number_columns):
            column_data, column_name = read_column(file_name, d)
            data[column_name] = column_data
    return data

我的数据:enter image description here我的预期结果:enter image description here

xjreopfe

xjreopfe1#

如果你不介意用一个2D表格来代替键值对,你可以使用panda模块,在这个模块中有一个很有用的函数to_dict(),它可以把CSV转换成字典,下面是一个例子:

import pandas as pd

file = pd.read_csv(filename, sep=',') #<---- the sep arguement does the same thing as the delimiter arguement, it is short for seperater

random_dict = pd.to_dict(file)
nbysray5

nbysray52#

使用csv DictReader

with open(file_name) as csv_file:
    dictR = csv.DictReader(csv_file)
    data = {hdr: [] for hdr in dictR.fieldnames}
    for row in dictR:
        for field in row:
            data[field].append(row[field])

使用从DictReader获取的字段名构建初始datadict。然后迭代行和行中的字段。对于每个字段,将字段值附加到与datadict中的字段名对应的列表中。

相关问题