[英]Workaround for pandas merge error “unhashable type: dict”
我有 2 個數據框 ds 和 dk 並希望使用合並命令將其與公共列結果合並:
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.