Как извлечь конкретное число из текстовых данных ⇐ Python
-
Anonymous
Как извлечь конкретное число из текстовых данных
Файл: Набор данных
Я пытаюсь извлечь один или несколько кодов неисправности, которые доступны в столбце текстовых данных в прикрепленном наборе данных. Я написал ниже функцию для извлечения значений. Но он извлекает все цифры (цифры 2–4), а не только код неисправности. Например, в 4-й записи набора данных вместо извлечения только 5751 в качестве кода неисправности извлекаются 53, 2020, 03, 13, 17, 40, 5751, 77, 47, 43. Как правильно извлечь значения, как показано в столбце «Код неисправности» в наборе данных.
# Функция для извлечения кодов неисправностей из текста защита Extract_fault_codes (текст): # Используйте регулярное выражение для поиска буквенно-цифровых кодов, таких как FC123 Fault_codes = re.findall(r'\b(?:FC:|FC|f/c|F/C|fc:|fc)?\s*(\d{2,4})\b', text, ре.IGNORECASE) # Удаление дубликатов путем преобразования списка кодов неисправностей в набор unique_fault_codes = список (набор (fault_codes)) # Соедините уникальные коды запятой return ', '.join(unique_fault_codes) raw_data2['Код ошибки'] = raw_data2['Текстовые данные'].apply(extract_fault_codes) raw_data2.head(40) Я буду признателен за любые предложения по улучшению моего кода.
Файл: Набор данных
Я пытаюсь извлечь один или несколько кодов неисправности, которые доступны в столбце текстовых данных в прикрепленном наборе данных. Я написал ниже функцию для извлечения значений. Но он извлекает все цифры (цифры 2–4), а не только код неисправности. Например, в 4-й записи набора данных вместо извлечения только 5751 в качестве кода неисправности извлекаются 53, 2020, 03, 13, 17, 40, 5751, 77, 47, 43. Как правильно извлечь значения, как показано в столбце «Код неисправности» в наборе данных.
# Функция для извлечения кодов неисправностей из текста защита Extract_fault_codes (текст): # Используйте регулярное выражение для поиска буквенно-цифровых кодов, таких как FC123 Fault_codes = re.findall(r'\b(?:FC:|FC|f/c|F/C|fc:|fc)?\s*(\d{2,4})\b', text, ре.IGNORECASE) # Удаление дубликатов путем преобразования списка кодов неисправностей в набор unique_fault_codes = список (набор (fault_codes)) # Соедините уникальные коды запятой return ', '.join(unique_fault_codes) raw_data2['Код ошибки'] = raw_data2['Текстовые данные'].apply(extract_fault_codes) raw_data2.head(40) Я буду признателен за любые предложения по улучшению моего кода.