2016-07-21 3 views
2

Допустим, у меня есть этот CSV-файл:Read CSV в Словаре из dicts

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

Я хотел бы, чтобы преобразовать его в следующем Dict:

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

Есть простой способ сделать это? Я пробовал использовать csv DictReader или pandas, но не получил простой способ, хотя это выглядит как обычный вариант использования.

ответ

2

Вы можете использовать метод экземпляра DataFrame pandas to_dict. Например:

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

Спасибо! что сработало :) –

+0

@YehudaKarlinsky добро пожаловать! – frist

0

Вы можете сделать это с помощью модуля 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() 
Смежные вопросы