Python - Проверить, содержит ли столбец значение в списке, возвращаемое значение - PullRequest
0 голосов
/ 23 октября 2018

У меня есть df:

d = {'id': [1,2,3,4,5,6,7,8,9,10],
      'text': ['bill did this', 'jim did something', 'phil', 'bill did nothing',
               'carl was here', 'this is random', 'other name',
               'other bill', 'bill and carl', 'last one']}
df = pd.DataFrame(data=d)

И я хотел бы проверить, содержит ли столбец значение в списке, где список:

list = ['bill','carl']

Я бынравится возвращать что-то вроде этого, тогда

id  text                    contains
1   bill did this           bill
2   jim did something       
3   phil                
4   bill did nothing        bill
5   carl was here           carl
6   this is random
7   other name
8   other bill              bill
9   bill and carl           bill
9   bill and carl           carl
10  last one

Хотя способ обработки 2 или более имен в одной строке открыт для изменения.Есть предложения?

1 Ответ

0 голосов
/ 23 октября 2018

Вы можете создать лямбда-функцию для проверки каждого элемента в вашем списке:

d = {'id': [1,2,3,4,5,6,7,8,9,10],
      'text': ['bill did this', 'jim did something', 'phil', 'bill did nothing',
               'carl was here', 'this is random', 'other name',
               'other bill', 'bill and carl', 'last one']}
df = pd.DataFrame(data=d)

l = ['bill','carl']

df['contains'] = df['text'].apply(lambda x: ','.join([i for i in l if i in x]))

Вы можете удалить объединение, если хотите получить список, иначе оно просто объединит значения, разделенные запятой.

Выход

>>df['contains']

0         bill
1             
2             
3         bill
4         carl
5             
6             
7         bill
8    bill,carl
9             
Name: contains, dtype: object
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...