wiwiz
wiwiz

Reputation: 1

How to import data from csv file to a list inside a dictionary "myDict" in python?

myDict = {'Name':[],'Tribe':[],'Town':[],'Username':[]}

How to import data from CSV file into a list inside a dictionary myDict in python?

a.csv
Daniel,Bataknese,Indramayu,dan.iel
Melissa,Javanese,Jakarta,melissaaaa
Vicky,Bataknese,Jakarta,vic.ky
Winona,Javanese,Batam,weenonuhh

myDict should be like this:

myDict = {'Name': ['Daniel', 'Melissa', 'Vicky', 'Winona'],
          'Tribe': ['Bataknese', 'Javanese', 'Bataknese', 'Javanese'],
          'Town': ['Indramayu', 'Jakarta', 'Jakarta', 'Batam'],
          'Username': ['dan.iel', 'melissaaaa', 'vic.ky', 'weenonuhh']}

Upvotes: 0

Views: 144

Answers (4)

Anuj Gupta
Anuj Gupta

Reputation: 558

I have got a method you can do it an easy way using pandas. The plus point, it works for any kind of data frame, not just the data frame from the CSV file of your case.

import pandas as pd
df = pd.read_csv('a.csv')    # read the csv file
result = df.to_dict('list')  # convert the dataframe to a dictionary with columns as key and values as list.
print(result)

Upvotes: 0

ksouravdas
ksouravdas

Reputation: 124

you can use pandas also.example like this

import pandas as pd

df = pd.read_csv('test.csv', header=None)

for row in df:
    myDict = {'Name':df[0].tolist(), 'Tribe':df[1].tolist(),
            'Town':df[2].tolist(),'Username':df[3].tolist()}

print(myDict)

Upvotes: 0

Rahul Verma
Rahul Verma

Reputation: 3176

import pandas as pd
df=pd.read('data.csv',names=['a','b','c','d'])
myDict={}
myDict['Name']=df.a
myDict['Tribe']=df.b
myDict['Town']=df.c
myDict['Username']=df.d

Upvotes: 0

MjZac
MjZac

Reputation: 3536

You can use the built in csv module.

import csv
myDict = {'Name':[],'Tribe':[],'Town':[],'Username':[]}

with open('file.csv') as csvDataFile:
    csvReader = csv.reader(csvDataFile)
    for row in csvReader:
        myDict['Name'].append(row[0])
        myDict['Tribe'].append(row[1])
        myDict['Town'].append(row[2])
        myDict['Username'].append(row[3])

Upvotes: 1

Related Questions