【问题标题】:How to import data from csv file to a list inside a dictionary "myDict" in python?如何将数据从csv文件导入python字典“myDict”中的列表?
【发布时间】:2019-11-14 06:11:20
【问题描述】:
myDict = {'Name':[],'Tribe':[],'Town':[],'Username':[]}

如何在python中将数据从CSV文件导入到字典myDict中的列表中?

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

myDict 应该是这样的:

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

【问题讨论】:

    标签: python list csv dictionary set


    【解决方案1】:

    您可以使用内置的csv 模块。

    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])
    

    【讨论】:

      【解决方案2】:
      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
      

      【讨论】:

      • CSV 文件没有列名
      【解决方案3】:

      你也可以使用 pandas。像这样的例子

      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)
      

      【讨论】:

        【解决方案4】:

        我有一个方法,你可以使用 pandas 轻松完成。优点是,它适用于任何类型的数据框,而不仅仅是您案例的 CSV 文件中的数据框。

        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)
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-06-17
          • 2021-03-18
          • 1970-01-01
          • 1970-01-01
          • 2018-07-18
          • 2019-08-06
          • 2021-05-04
          • 2016-10-26
          相关资源
          最近更新 更多