我有2个数据帧ds和dk,并希望使用merge命令将其与公共列结果合并:
str: string
wStr: wstring
但结果列实际上是字典,并导致错误:
result = pd.merge(ds,dk,on='result')
合并这些框架的可能解决方案是什么?是否可以将结果列更改为字符串类型,然后沿该列合并?
我尝试使用 "unhashable type: dict"
和dk['result']= str(dk['result'])
进行转换并合并,但是没有用。
谢谢
答案 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