У меня есть фрейм данных, который имеет эти значения в одном из своих столбцов:
In:
df.line.unique()
Out:
array(['Line71A', 'Line71B', 'Line75B', 'Line79A', 'Line79B', 'Line75A', 'Line74A', 'Line74B',
'Line70A', 'Line70B', 'Line58B', 'Line70', 'Line71', 'Line74', 'Line75', 'Line79', 'Line58'],
dtype=object)
И я хотел бысоздать новый столбец с 2 значениями на основе того, содержит ли строка значений LineXX, например:
if (df.line.str.contains("Line70") or (df.line.str.contains("Line71") or (df.line.str.contains("Line79")):
return 1
else:
return 0
Таким образом, значение должно быть 1 в новом столбце, box_type
, если значения в df.line
содержит "Line70", "Line71", "Line79", а остальные должны быть 0
Я попытался сделать это с помощью этого кода:
df['box_type'] = df.line.apply(lambda x: 1 if x.contains('Line70') or x.contains('Line71') or x.contains('Line79') else 0)
Но я получаю эту ошибку:
AttributeError: 'str' object has no attribute 'contains'
И я попытался добавить .str
между x
и contains
, как x.str.contains()
, но это также дало ошибку.
Как я могу это сделать?
Спасибо!