Пересечение в одиночной серии pandas - PullRequest
1 голос
/ 09 июля 2020
       0
0  [g,k]
1  [e,g]
2  [e]
3  [k,e]
4  [s]
5  [g]

Я пытаюсь получить значение, которое появляется один раз в столбце данных, в этом примере решение должно быть 's'.

Но я могу найти методы для решения этой проблемы только при наличии две серии или два столбца фрейма данных. Я не могу сделать это в одном столбце, потому что, если значение является частью комбинации, unique не сработает, насколько мне известно.

1 Ответ

1 голос
/ 09 июля 2020

При необходимости проверьте, возможно ли только одно значение, используйте Series.explode с Series.value_counts, а затем отфильтруйте index по 1 в boolean indexing:

s = df[0].explode().value_counts()
L = s.index[s == 1].tolist()
print (L)
['s']

Или используйте чистое решение python с Counter и сгладьте вложенные списки в Series в понимании списка:

from collections import Counter

L = [k for k, v in Counter([y for x in df[0] for y in x]).items() if v == 1]
print (L)
['s']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...