很抱歉标题很混乱,基本上我有一个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'])
现在,datalist拥有来自column1的所有值,我希望这些值成为关键字,而column2拥有我希望成为字典中的值的所有值。
然而,问题是,数据帧看起来像这样:
column1 column2
0 key1 value1
1 key1 value2
2 key2 value3
3 key2 value4
我希望字典看起来像这样:
dict = {"key1": [value1, value2], "key2": [value3, value4]}
发布于 2018-07-29 01:11:08
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()
https://stackoverflow.com/questions/51573494
复制相似问题