从熊猫数据框创建字典。在列上包含集合

时间:2019-03-22 22:22:14

标签: python pandas dictionary

我正在尝试从包含

这样的集合的列中创建字典
d = {'col1': [{'A','B'},{'C','D'},{'A','C'},{'C'}], 'col2': [3, 4,5,7]}
df = pd.DataFrame(data=d) 

我想应用这样的东西

df.apply(something)

我明白了

[{A:[3,5]}, {B:[3]}, {C:[4,5,7]},{D:[4]}]

1 个答案:

答案 0 :(得分:6)

使用meltgroupby + apply(list)to_dict

(pd.DataFrame(df.col1.tolist())
   .join(df.col2)
   .melt('col2')
   .groupby('value')['col2']
   .apply(list)
   .to_dict())
# {'A': [5, 3], 'B': [3], 'C': [7, 4, 5], 'D': [4]}