熊猫合并错误“无法散列的类型:dict”的解决方法

时间:2020-05-09 07:28:42

标签: python pandas dictionary

我有2个数据帧ds和dk,并希望使用merge命令将其与公共列结果合并:

str: string
wStr: wstring

但结果列实际上是字典,并导致错误:

result = pd.merge(ds,dk,on='result')

合并这些框架的可能解决方案是什么?是否可以将结果列更改为字符串类型,然后沿该列合并? 我尝试使用 "unhashable type: dict" dk['result']= str(dk['result'])进行转换并合并,但是没有用。

谢谢

1 个答案:

答案 0 :(得分:0)

ds = pd.DataFrame({'result':[{'a':1,'b':1},{'a':3,'b':9},{'a':7,'b':5}],
                   'a':[0,1,0]})

dk = pd.DataFrame({'result':[{'a':1,'b':1},{'a':3,'b':9},{'a':7,'b':5}],
                   'b':[2,2,2]})

ds['result'] = ds['result'].astype(str) # transorm dict to str
dk['result'] = dk['result'].astype(str) # transorm dict to str

result = pd.merge(ds,dk,on='result')
result['result'] = result['result'].apply(eval) # comeback im dict format