Как проверить столбец на наличие подстроки и обновить другой столбец, если он найден? - PullRequest
0 голосов
/ 28 марта 2020

Я довольно новичок в python, и мои поиски не были продуктивными, поэтому я надеюсь, что кто-то может помочь или направить меня туда, где на него ответили. По сути, я пытаюсь найти в определенном столбце подстроку, и если эта подстрока существует, обновите соответствующую строку в другом столбце.

Я проиллюстрирую этот набор данных

    A   B            C
    1   CYESC        THIS
    2   ABCD         0
    3   YES BOY      THIS
    4   BOY YES CAN  THIS
    5   ryrruei      0

I хочу, чтобы «ЭТО» отображалось в столбце C, если столбец «B» содержит подстроку «YES» и «0», если этого не происходит.

Я попытался запустить этот код, который вышел с сообщение об ошибке:

import pandas as pd 
import numpy as np

df['C'] = pd.np.where(df['B'].str.contains('YES'), 'THIS')

Я также попытался использовать, если:

if 'YES' in [df['B']]:
     df['C'] = "THIS"
Else:
    df['C'] = 0    

Все еще не удалось. Я знаю, что я что-то упускаю ... пожалуйста, любые предложения будут оценены. Приветствия

Ответы [ 2 ]

2 голосов
/ 28 марта 2020

Я думаю numpy.where - правильный путь, но вы забыли третий параметр, здесь 0:

df['C'] = pd.np.where(df['B'].str.contains('YES'), 'THIS', 0)
0 голосов
/ 28 марта 2020
df['C'] = df['B'].transform(lambda value: 'THEN' if value.find('YES')>-1 else 0)
...