Временное решение для pandas ошибки слияния "unhashable type: dict" - PullRequest
1 голос
/ 09 мая 2020

У меня есть 2 фрейма данных ds и dk, и я хочу объединить их с результатом общего столбца с помощью команды слияния:

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

, но столбец результата на самом деле является словарем и приводит к ошибке:

 "unhashable type: dict"

какое возможное решение для объединения этих фреймов? Можно ли изменить столбец результатов на строковый, а затем объединить по столбцу? Я попытался использовать dk['result']= str(dk['result']) и ds['result']= str(ds['result']) для преобразования и слияния, но это не сработало.

Спасибо

1 Ответ

0 голосов
/ 09 мая 2020
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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...