Pandas содержит условие возврата True, но хотите вернуть как 1 или 0 - создание столбца series / dataframe - PullRequest
0 голосов
/ 21 сентября 2018

У меня есть фрейм данных со значениями String в одном из его столбцов.Я хочу перебрать каждую строку в указанном столбце, чтобы увидеть, содержит ли значение слово, которое я ищу.Если это так, я хочу, чтобы он возвращал значение int 1, а если нет, то 0.

df['2'] = df['Col2'].str.lower().str.contains('word')

Я могу только заставить его вернуть True или False

       Col1                  Col2       
1     hello how are you       0
2     that is a big word      1
3     this word is bad        1
4     tonight tonight         0

1 Ответ

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

Легко сделать это.Вы можете просто добавить .astype (int) в свой логический столбец.или просто используйте функцию apply для одной строки. посмотрите следующий пример.

df = pd.DataFrame(["hello how are you","that is a big word","this word is bad","tonight tonight"],columns=["Col1"])

# Method 1
df["Col2"] = df["Col1"].str.lower().str.contains('word')
df["Col2"] = df["Col2"].astype(int)

# Method 2
df["Col2"] = df["Col1"].apply(lambda x: 1 if "word" in x.lower() else 0)
df
                 Col1  Col2
0   hello how are you     0
1  that is a big word     1
2    this word is bad     1
3     tonight tonight     0
...