Pandas DataFrame read_csv第一列作为字典中的键,第二列作为值(以简单的方式)

2024-06-28 19:54:27 发布

您现在位置:Python中文网/ 问答频道 /正文

给定df=pandas.read_csv(somePath,header=None)的输出:

          0        1
0      Name  Bambang
1    Gender     Male
2       Age       25

如何将其转换为:

dict_data={
    'Name':Bambang,
    'Gender':Male,
    'Age':25
}

我可以做到,但在很大程度上:

df=pandas.read_csv(somePath,header=None)
df=df.set_index([0])
theDict=df.to_dict()
theDict=theDict[1]

使用pandas.read_csv()或python native命令是否有一种本机的简单方法?多谢各位


Tags: csvnamenonepandasdfreadagedata
1条回答
网友
1楼 · 发布于 2024-06-28 19:54:27

假设您已经阅读了数据,并希望将其作为一个dict

类似这样的方法可能会奏效:

df.set_index('0').T.to_dict('records')[0]
{'Name': 'Bambang', 'Gender': 'Male', 'Age ': '25'}

此外,如果您真的想这样做,最好使用python的csv读取器来获取您的dict,而不是先使用pandas然后使用dict的循环方式:

这是data.txt中数据的外观;我不确定这是否完全复制了您所拥有的:

data = '''    
     Name  Bambang
    Gender     Male
       Age       25'''

data


import csv

A = []
with open('data.txt', newline = '') as csvfile:
    content = csv.reader(csvfile,delimiter = ' ')
    for row in content:
        A.append([entry for entry in row if entry != ''])

dict(A)
{'Name': 'Bambang', 'Gender': 'Male', 'Age': '25'}

更新:多亏了@AMC,它从一端变得简单多了-:获取numpy值并应用dict:

 dict(df.to_numpy())
 {'Name': 'Bambang', 'Gender': 'Male', 'Age': '25'}

相关问题 更多 >