Read csv to dict of dicts



假设我有这个csv文件:

Header1, Header2, Header3
key1,    1,       2
key2,    3,       4

我想将其转换为以下dict:

{Header2: {key1: 1, key2: 3}, Header3: {key1: 2, key2: 4}}

有简单的方法吗?我尝试过使用csv DictReader或pandas,但没有找到一个简单的方法,尽管在我看来这是一个常见的用例。

您可以使用Panda的DataFrame实例的to_dict方法。例如:

import pandas as pd
df = pd.read_csv('file.csv', delimiter=r',s+', index_col=0)
print(df.to_dict())

您可以使用csv模块:

import csv 
f = open(csv_file_path)
reader = csv.DictReader(f)
fieldnames = reader.fieldnames
result = {fieldname:{} for fieldname in fieldnames[1:]}
for row in reader:
    for fieldname in fieldnames[1:]:
        result[fieldname][row['Header1'].strip()] = row[fieldname].strip()

最新更新