Эффективное извлечение строк из фрейма данных pandas, в котором я должен искать элементы в списке - PullRequest
0 голосов
/ 28 июня 2018

Мой фрейм данных выглядит так:

id author
1  ['abc','def','alp']
2  ['akx','xyz','shdj','dhhs']
3  ['abc', 'alp','pqw']

Например, я хочу извлечь все строки с авторами ['abc', 'alp']. Должны быть извлечены строки 1 и 3.

Есть ли какой-нибудь эффективный способ сделать это с помощью Python-панд?

1 Ответ

0 голосов
/ 28 июня 2018

Используйте наборы со списком, для фильтрации boolean indexing:

L = ['abc','alp']
df = df[[set(x) >= set(L) for x in df.author]]
print (df)
   id           author
0   1  [abc, def, alp]
2   3  [abc, alp, pqw]

Деталь

print ([set(x) >= set(L) for x in df.author])
[True, False, True]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...