Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python “合并错误”的解决方法;不可损坏类型:dict";_Python_Pandas_Dictionary - Fatal编程技术网

Python “合并错误”的解决方法;不可损坏类型:dict";

Python “合并错误”的解决方法;不可损坏类型:dict";,python,pandas,dictionary,Python,Pandas,Dictionary,我有两个数据帧ds和dk,希望使用merge命令将其与公共列结果合并: result = pd.merge(ds,dk,on='result') 但结果列实际上是一个字典,并导致错误: "unhashable type: dict" 合并这些帧的可能解决方案是什么?是否可以将结果列更改为字符串类型,然后沿列合并? 我尝试使用dk['result']=str(dk['result'])和ds['result']=str(ds['result'])进行转换和合并,但没有成功 谢谢 ds = p

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

result = pd.merge(ds,dk,on='result')
但结果列实际上是一个字典,并导致错误:

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

谢谢

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