Python 3.x 将dataframe转换为字典并保留所有值

Python 3.x 将dataframe转换为字典并保留所有值,python-3.x,string,pandas,list,dictionary,Python 3.x,String,Pandas,List,Dictionary,我有以下几点 我的目标是使df成为一本词典 所以我尝试下面的方法 import pandas as pd text = [list(['(1-100-133-1710)']), 'nan', 'nan'] df = pd.DataFrame({'Text': text , 'IDs': ['A11','A11','C11'], }) df IDs Text 0 A11 [(1-100-133-

我有以下几点

我的目标是使df成为一本词典

所以我尝试下面的方法

import pandas as pd
text = [list(['(1-100-133-1710)']), 'nan', 'nan']
df = pd.DataFrame({'Text': text ,
                   'IDs': ['A11','A11','C11'],
                          }) 
df
    IDs Text
0   A11 [(1-100-133-1710)]
1   A11 nan
2   C11 nan
我得到以下输出

to_d = dict(zip(df.IDs,df.Text))
但该输出缺少键A11和df中第0行的值[1-100-133-1710]。理想情况下,我希望获得以下输出,但python字典中不允许重复键

 {'A11': 'nan', 'C11': 'nan'}
因此,我需要以下输出,它将A11中的两个值合并到一个公共值列表中,该列表保留相同的键A11

如何获得所需的输出

所以我们可以使用

{'A11': '[(1-100-133-1710)]', 'A11': 'nan', 'C11': 'nan'}
{'A11': '[[(1-100-133-1710)]', 'nan'], 'C11': 'nan'}
df.groupby('IDs').Text.apply(list).to_dict()
Out[431]: {'A11': [['(1-100-133-1710)'], 'nan'], 'C11': ['nan']}