在python中从CSV文件创建字典

时间:2015-11-24 22:22:12

标签: python csv dictionary

我有一个csv文件,格式如下:

age,name
3,abc
5,xyz
6,pqr
4,stu
8,lkm

如何将其以下列格式放入字典中:

{3:'abc', 5:'xyz', 6:'pqr', 4:'stu', 8:'lkm'}

更新:

mycode的 -

age_file = open('age.csv','r')
csv_age = csv.DictReader(age_file)

for row in csv_age:
    print(row)
  
    

输出:

  
{'age' : 3, 'name' : 'abc', 'age' : 5, 'name' : xyz, ... }

2 个答案:

答案 0 :(得分:1)

除了问题来自年龄和名字。如果name / age是uniq,您可以使用:

import csv
my_result={}
with open('age.csv', 'rb') as csvfile:
     for age,name in csv.reader(csvfile, delimiter=','):
         my_result[age]=name

但我希望你的使用更好的defaultdict。并且通过在一个年龄段拥有多个名称使其更加健壮:

import csv
from collection import defaultdict 
my_result=defaultdict(list)
with open('age.csv', 'rb') as csvfile:
     for row in csv.reader(csvfile, delimiter=','):
         my_result[age].append(name)

在这种情况下,结果将是: {1:[ “鲍勃”, “约翰”],3:[ “票据”],6:[ “乔治”, “莫妮卡”]}

答案 1 :(得分:0)

我很懒,所以我用熊猫:

import pandas as pd
df = pd.read_csv('test.csv')
dd = {}
for ii, age in enumerate(df.age):
    dd[age] = df.name.iloc[ii]

但是,我同意上述评论,即在下次相同年龄显示为关键时,您将破坏先前具有指定年龄的条目。