Неразрешимый список, когда список слишком большой в Python - PullRequest
0 голосов
/ 15 мая 2019

У меня есть два кадра данных (оба довольно большие), df и df3, и следующая строка кода:

  set1 = df3['JointObligorID'].unique()
  set2 = df['JointObligorID'].unique()
  set3 = list(set(set1).intersection(set2)) 

  # slice df3 by keeping what's in set3 
  df4 = df3[df3['JointObligorID'].isin([set3])]

Однако, как только я достигаю последнего шага, я получаю следующую ошибку:

TypeError: unhashable type: 'list'

Решения, предоставленные здесь не работали, либо потому, что были специфические вопросы, либо некоторые ответы, которые не были достаточно общими (мой список - set3 - слишком большой)

Может кто-нибудь помочь решить эту проблему?

Ответы [ 2 ]

3 голосов
/ 15 мая 2019

Вы передаете список списка, вместо этого используйте

df4 = df3[df3['JointObligorID'].isin(set3)]
1 голос
/ 15 мая 2019

Если вам нужна хешируемая структура в виде списка, вы можете использовать кортежи :

set3 = tuple(set(set1).intersection(set2))

вместо:

set3 = list(set(set1).intersection(set2))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...