簡體   English   中英

pandas 合並錯誤“unhashable type:dict”的解決方法

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM