【问题标题】:Import CSV file using pandas and retain column headings使用 pandas 导入 CSV 文件并保留列标题
【发布时间】:2018-01-31 22:22:16
【问题描述】:

我有一个包含以下数据的 CSV 文件

firstName,lastName,email,phoneNumber
John,Doe,john@doe.com,0123456789
Jane,Doe,jane@doe.com,9876543210
James,Bond,james.bond@mi6.co.uk,0612345678

我想将它存储在 python 字典中。我正在使用 pandas 尝试导入它并保留每列的文件标题。

df = pd.read_csv('file.csv', delimiter=',')
dicts = df.to_dict().values()
print(dicts)

这个输出

dict_values([{0: 'John', 1: 'Jane', 2: 'James'}, {0: 'Doe', 1: 'Doe', 2: 'Bond'}, {0: 'john@doe.com', 1: 'jane@doe.com', 2: 'james.bond@mi6.co.uk'}, {0: 123456789, 1: 9876543210, 2: 612345678}])

似乎没有保留标题“firstName,lastName,email,phoneNumber”

 print ("dict['Name']: ", dict['firstName'])
 TypeError: 'type' object is not subscriptable

有没有简单的方法来做到这一点?

【问题讨论】:

    标签: python-3.x pandas


    【解决方案1】:

    你只想要to_dict:

    In[92]:
    df.to_dict()
    
    Out[92]: 
    {'email': {0: 'john@doe.com', 1: 'jane@doe.com', 2: 'james.bond@mi6.co.uk'},
     'firstName': {0: 'John', 1: 'Jane', 2: 'James'},
     'lastName': {0: 'Doe', 1: 'Doe', 2: 'Bond'},
     'phoneNumber': {0: 123456789, 1: 9876543210, 2: 612345678}}
    

    例如:

    In[93]:
    d = df.to_dict()
    d['email']
    
    Out[93]: {0: 'john@doe.com', 1: 'jane@doe.com', 2: 'james.bond@mi6.co.uk'}
    

    调用.values返回一个numpy值数组,它没有列标签,只有索引标签

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-28
      • 1970-01-01
      • 1970-01-01
      • 2014-10-17
      • 2022-11-28
      相关资源
      最近更新 更多