Я обрабатываю следующий фрейм данных:
import pandas as pd
dataframe = pd.DataFrame({'Column_01': ['Sensor with 0005-fdk', 'Sensor with RX simpleleak',
'Actuador', 'Sensor with TX xxx',
'SENSOR WITH Press OL SimplePack'],
'Column_02': ['000', '001', '010', '011', '100']})
Мне нужно создать новый столбец в фрейме данных выше. Этот новый столбец получит значение «DETECT», если соответствующая строка в «Column_01» начинается с (Sensor with или SENSOR WITH) и заканчивается (SimplePack или simplepack). В противном случае строка получит Nan.
Я обнаружил, что функция match () проверяет, соответствует ли регулярное выражение началу текста. Итак, я попытался реализовать следующий код:
dataframe['Column_03'] = dataframe.apply(lambda x: 'DETECT'
if re.match(r'Sensor with|SENSOR WITH', x['Column_01'])
else 'Nan', axis = 1)
Однако для этой проблемы код неполон, поскольку он не проверяет окончательное регулярное выражение.
Мой вывод:
Column_01 Column_02 Column_03
Sensor with 0005-fdk 000 DETECT
Sensor with RX simpleleak 001 DETECT
Actuador 010 Nan
Sensor with TX xxx 011 DETECT
SENSOR WITH Press OL SimplePack 100 DETECT
Я бы хотел, чтобы результат был:
Column_01 Column_02 Column_03
Sensor with 0005-fdk 000 Nan
Sensor with RX simpleleak 001 Nan
Actuador 010 Nan
Sensor with TX xxx 011 Nan
SENSOR WITH Press OL SimplePack 100 DETECT