如何使用csv文件创建字典

时间:2018-07-29 21:36:59

标签: python pandas csv dictionary

我想创建一个字典,键为csv文件的第一行,值为{第一列:对应于行的列}的字典,例如test.csv

Header1, Header2, Header3
A,       1,       10
B,       2,       20
C,       3,       30

我正在使用data.drop(['Header1'], 1)放下Header1

我希望结果是:

{'Header2':{A:1, B:2, C:3},'Header3':{A:10, B:20, C:30}}

我应该使用csv.DictReader吗?还是用numpy数组?

2 个答案:

答案 0 :(得分:0)

使用熊猫

df = pd.read_csv(testcsv, index_col=['Header1'], sep=',\s+')
df.to_dict()

输出:

{'Header2': {'A': 1, 'B': 2, 'C': 3}, 'Header3': {'A': 10, 'B': 20, 'C': 30}}

答案 1 :(得分:0)

另一个没有熊猫的例子:

import csv

with open('data_all.csv', newline='') as csvfile:
    reader = csv.reader(csvfile, delimiter=',')
    dicts = {entry:{} for entry in next(reader)[1:]}
    for row in reader:
        index = 0
        for _dict in dicts.values():
            index+=1
            _dict[row[0]]=row[index]

    print(dicts)

{' Header2': {'A': ' 1', 'B': ' 2', 'C': ' 3'}, ' Header3': {'A': ' 10', 'B': ' 20', 'C': ' 30'}}