在将pandas数据框转换为字典时,如何将所有不同的值附加到列表中? 参考:Convert a Pandas DataFrame to a dictionary
此问题的答案指定了解决方案,但它提供了以下输出:
df = pd.DataFrame({'a': ['red', 'yellow', 'blue', 'red'], 'b': [0.5, 0.25, 0.125, 0.9]})
>>> df.set_index('a').T.to_dict('list')
{'red': [0.9], 'yellow': [0.25], 'blue': [0.125]}
预期输出:
{'red': [0.5,0.9], 'yellow': [0.25], 'blue': [0.125]}
答案 0 :(得分:2)
将DataFrame.groupby
与list
和Series.to_dict
一起使用:
print (df.groupby('a')['b'].apply(list).to_dict())
{'blue': [0.125], 'red': [0.5, 0.9], 'yellow': [0.25]}