抱歉,标题混乱,基本上我有一个Pandas数据框,我想将两列转换成字典(其中一列是键,另一列是值)。但是,当我使用to_dict()时,问题在于,由于第一列中有许多行具有相同的值,因此只需要其中一行,而不能获取所有数据。有办法解决这个问题吗?
我尝试递归地解决此问题,但我无法弄清楚。
编辑:添加了代码
data = pd.read_csv('file')
datalist = []
data2list = []
for i in range(len(data.index)):
datalist.append(data.loc[i, 'column1'])
for i in range(len(data.index)):
data2list.append(data.loc[i, 'column2'])
现在数据列表具有我想要成为键的column1的所有值,而column2具有我想要成为字典中的值的所有值。
但是问题是,数据框看起来像这样:
column1 column2
0 key1 value1
1 key1 value2
2 key2 value3
3 key2 value4
我希望字典看起来像这样:
dict = {"key1": [value1, value2], "key2": [value3, value4]}
答案 0 :(得分:1)
Python字典不支持重复键。您可以通过调整第一列中的值来解决此问题,以免重复键。或者,您可以为第一列中的每个唯一键创建一个列表字典。由于您的数据位于Pandas DataFrame中,因此您可以执行以下操作:
import pandas as pd
# Your data
data = pd.DataFrame({'column1':['key1','key1','key2','key2'],
'column2':['value1','value2','value3','value3']})
# Grouped dict
data_dict = data.groupby('column1').column2.apply(list).to_dict()