我有一个数据框,我想转入字典。但问题是数据重复,我希望它结合起来。但是因为它是字典,最后一个值当然替换了相同键的值。代码例如。
df =
example column a example column b
a 2
b 3
a 4
c 5
a 2
c 3
my_dict = enzyme_gene.set_index('example column a')['example column b'].to_dict()
我得到my_dict = {'b: 3', 'a: 2', 'c: 3'}
我想得到的是
my_desired_combined_dict = {'a: 2, 4, 2', 'b: 3', 'c: 5, 3'}
您预期输出无效dictionary
。
如果需要dictionary of lists
首先使用groupby
和list
:
my_dict1 = enzyme_gene.groupby('example column a')['example column b'].apply(list).to_dict()
print (my_dict1)
{'a': [2, 4, 2], 'b': [3], 'c': [5, 3]}
或groupby
与join
字符串:
my_dict2 = (enzyme_gene.groupby('example column a')['example column b']
.apply(lambda x: ', '.join(x.astype(str)))
.to_dict())
print (my_dict2)
{'a': '2, 4, 2', 'b': '3', 'c': '5, 3'}