Установка флага столбца в зависимости от того, содержит ли столбец заданную строку - PullRequest
0 голосов
/ 13 декабря 2018

Кто-нибудь может понять, почему это не работает?

Это пытается сделать;если имя столбца содержит текст 'Andy', тогда создайте столбец с именем Andy и установите для этой строки = 1

df.loc[df['Name'].str.contains(['Andy']),'Andy']=1

Ответы [ 2 ]

0 голосов
/ 13 декабря 2018

pd.Series.str.contains требует для своего pat аргумента "Последовательность символов или регулярное выражение", не список.

Просто используйте логическое назначение и преобразуйтедо int.Это установит несопоставленные строки в 0.Например:

# Name includes 'Andy'
df['Andy'] = df['Name'].str.contains('Andy').astype(int)

# Name includes 'Andy' or 'George'
df['Andy'] = df['Name'].str.contains('Andy|George').astype(int)
0 голосов
/ 13 декабря 2018

Вы должны удалить список, нужна только строка:

df.loc[df['Name'].str.contains('Andy'),'Andy'] = 1

Для цепочки нескольких значений: |:

df.loc[df['Name'].str.contains('Andy|George'),'Andy'] = 1
...