У меня есть этот фрейм данных с одним интересующим меня столбцом:
Col1
code
goal
python
detail
Я хотел бы создать новый столбец, Col2 со значениями 1 или 0 в зависимости от значения строк в Col1; в частности:
- , если строка имеет значение в списке
my_list=['goal', 'detail', 'objective']
, тогда присвоить 1; - , если нет, то присвоить 0.
Мой результат будет:
Col1 Col2
code 0
goal 1
python 0
detail 1
Я пробовал
# set default value
df['Col2'] = 0
# update according to conditions
df.loc[df['Col1'].str.contains('goal'), 'Col2'] = 1
df.loc[df['Col1'].str.contains('detail'), 'Col2'] = 1
df.loc[df['Col1'].str.contains('objective'), 'Col2'] = 1
, но это кажется частично неправильным. Я думаю, что мне следует использовать apply и рассмотреть слово x в my_list
, а не делать это вручную (это будет сложно в случае большого количества значений в списке).
Надеюсь, вы можете мне помочь.