Проверьте, соответствует ли значение строки одному из значений в списке, затем назначьте 1/0 в новом столбце - PullRequest
2 голосов
/ 01 августа 2020

Как я могу создать новый столбец в кадре данных pandas, следуя этим условиям?

если столбец 'Ex' совпадает с одним из элементов в этом списке l=['cnn', 'nba', 'agi', 'apple'] тогда:

Создайте новый столбец S, имеющий значение 1 для этих элементов в списке выше.

Например:

Исходный фрейм данных:

Ex

cnn
dog
mine
agi

Ожидаемый результат:

Ex          S

cnn         1
dog         0
mine        0
agi         1

Я бы подошел к проблеме следующим образом:

df['S']=df['Ex'].apply(lambda x: any([k in x for k in l]))

, чтобы проверить, совпадает ли строка (я не хочу, чтобы условие 'содержит') значения в пределах l. Я не знаю, как присвоить значения 1 или 0, но я думаю добавить оператор if.

1 Ответ

1 голос
/ 01 августа 2020

Вы можете просто сделать isin

df['S']=df['Ex'].isin(l).astype(int)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...