使用pandas导入CSV文件并保留列标题

时间:2017-08-23 10:59:46

标签: python-3.x pandas

我有一个包含以下数据的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

有一种简单的方法吗?

1 个答案:

答案 0 :(得分:0)

您只需要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}}

e.g:

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值数组,它没有列标签,只有索引标签