Pandas: Удалить строку, если в предложении содержится слово из другого столбца в той же строке - PullRequest
1 голос
/ 28 февраля 2020

У меня есть pandas фрейм данных df, и я хочу delete the row, если столбец предложения not contain значение из столбца слова в same row.

df = pd.DataFrame({'sentence': ['I eat chicken', 'I drive car'], 
               'word': ['eat', 'bus']})

Я хочу удалить строку I drive car, потому что предложение не содержит слова bus, другими словами, я хочу сохранить предложение, если предложение содержит слово в столбце слова. Я делаю это, но он возвращает ошибку.

df[df['sentence'].str.contains(df['word'])]

1 Ответ

3 голосов
/ 28 февраля 2020

Для сравнения строк мы должны использовать DataFrame.apply:

df[df.apply(lambda x: x['word'] in x['sentence'], axis=1)]

Или с zip и списком:

m = [word in sentence for word, sentence in zip(df['word'], df['sentence'])]
df[m]

Выход

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