Мне нужно разобрать определенные строки из свободного текстового поля в файле .xlsx. Я использую Python 2.7 в Spyder.
РЕДАКТИРОВАТЬ: я избежал "."в формулах регулярных выражений, но я все еще получаю ту же ошибку.
Для этого я использовал pandas для преобразования файла .xslx в фрейм данных pandas:
data = "complaints_data.xlsx"
read_data = pd.read_excel(data)
read_data.dropna(inplace = False)
df = pd.DataFrame(read_data)
df['FMEA Assessment'] = df['FMEA Assessment'].replace({',':''}, regex=True)
Затем я использовалфункция извлечения панд для извлечения моих строковых полей FMEA, Rev и Line с использованием шаблонов регулярных выражений.
fmea_pattern = r'(FMEA\s*\d*\d*\d*\d*\d*|fmea\s*\d*\d*\d*\d*\d*|DOC\s*\-*[0]\d*\d*\d*\d*\d*|doc\s*\-*[0]\d*\d*\d*\d*\d*)'
df[['FMEA']] = df['FMEA Assessment'].str.extract(fmea_pattern, expand=True)
rev_pattern = r'(Rev\.*\s+\D{1,2}+|rev\.*\s+\D{1,2}|REV\.*\s+\D{1,2}|rev\.*\s+\D{1,2})'
df[['REV']] = df['FMEA Assessment'].str.extract(rev_pattern, expand=True)
line_pattern = r'(line item\.*\s*\:*\d{1,3}\d*\.*\D*\.*\d+\d*?\.|Line\.*\s*\:*\d{1,3}\d*\.*\D*\.*\d+\d*?\.|lines\.*\s*\:*\d{1,3}\d*\.*\D*\.*\d+\d*?\.|Lines\.*\s*\:*\d{1,3}\d*\.*\D*\.*\d+\d*?\.|Line item\.*\s*\:*\d{1,3}\d*\.*\D*\.*\d+\d*?\.|LINES\.*\s*\:*\d{1,3}\d*\.*\D*\.*\d+\d*?\.|LINE\.*\s*\:*\d{1,3}\d*\.*\D*\.*\d+\d*?\.)'
df[['LINE']] = df['FMEA Assessment'].str.extract(line_pattern, expand=True)
Строковые поля, которые мне нужно проанализировать, могут быть введены различными способами, и я учел каждый способ в формулах регулярного выражения и для каждого варианта слова;например, я учел строки, линии, линии, линии, линии и т. д. Я протестировал формулы регулярных выражений по отдельности и по отдельности, и они работают должным образом. Тем не менее, когда я объединяю их все в коде выше, я получаю следующее сообщение об ошибке:
Снимок экрана с сообщением об ошибке
Не могли бы вы помочь мне решить эту проблему?
Кроме того, существует ли другой способ учета вариаций одного и того же слова в одно и то же время (строчные буквы, прописные буквы и заглавные буквы)?
Спасибо!