Проверьте, соответствует ли один столбец всем объектам в списке из другого столбца - PullRequest
0 голосов
/ 06 сентября 2018

У меня есть фрейм данных с одним столбцом строк и другим со списком строк.

                     0                     1
0      apples are good      [orange, banana]
1     bananas are good        [bananas, bad]
2  cucumbers are green      [cucumbers, are]
3     grapes are green  [grapes, are, green]
4     oranges are good             [oranges]
5   pineapples are big     [flowers, apples]

Я хочу найти все индексы, где строка в Column 0 соответствует всему содержимому списка в Column 1. В этом случае вывод будет выглядеть так:

                     0                     1
2  cucumbers are green      [cucumbers, are]
3     grapes are green  [grapes, are, green]
4     oranges are good             [oranges]

Я знаю, что могу использовать pandas.Series.str.contains, но это работает только для одного списка, и я хочу избежать повторения / циклов, если это возможно.

1 Ответ

0 голосов
/ 06 сентября 2018

Вы можете использовать понимание списка и логическое индексирование:

res = df[[all(word in x.split() for word in y) for x, y in zip(df[0], df[1])]]

print(res)

                     0                     1
2  cucumbers are green      [cucumbers, are]
3     grapes are green  [grapes, are, green]
4     oranges are good             [oranges]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...