从CSV文件创建字典

时间:2020-01-10 08:00:53

标签: python python-3.x csv dictionary

我有一个csv file,看起来像这样

   header1   header2   header3
1  value1    value2    value3
2  value4    value5    
3            value6    value7

我想写一个像这样的字典:

{header1:[value1, value4],
header2:[value2, value5, value6],
header3:[value3, value7]

}

我已经尝试过

records = csv.DictReader(f)
    for row in records:
         print(row)

但是它以第一列的值作为dict中的键 我该怎么办?

3 个答案:

答案 0 :(得分:2)

这是一种快速的方法,我希望采用明显的方法。

from csv import DictReader
from collections import defaultdict

result = defaultdict(list)
records = DictReader(f)
for row in records:
     for key in row:
         result[key].append(row[key])

答案 1 :(得分:0)

您可以为此使用熊猫。

import pandas as pd
df = pd.read_csv("Your CSV file name")
dict1 = df.to_dict('list')
print(dict1)

答案 2 :(得分:0)

使用pandas dataframe读取csv并转换为dict

import pandas as pd
df = pd.read_csv('test2.csv', sep=',')
df.to_dict('list')

它给出以下输出。

{
'header1': ['value1', 'value4', nan],
 'header2': ['value2', 'value5    ', 'value6'],
 'header3': ['value3', nan, 'value7']
}