簡體   English   中英

從文件中讀取 CSV 數據到字典中

[英]Reading CSV data from a file into a dictionary

我正在嘗試從 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

我的數據:在此處輸入圖像描述我的預期結果:在此處輸入圖像描述

如果您不介意為您的數據使用二維表而不是鍵值對,則可以使用 pandas 模塊,該模塊中有一個名為 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)

使用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獲取的字段名稱構建初始data dict 然后遍歷行和行中的字段。 對於每個字段 append 字段值到列表中對應於data dict中的字段名稱。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM