Итак, я пытаюсь использовать регулярные выражения для извлечения значений веса из столбца моего pandas фрейма данных ... по какой-то причине ожидать, что это не правильно извлечь.
all_data["name"].iloc[0] = "220 grams" # this is purely to show my issue
pattern = "[0-9]+ ?(gram|mg|Gram|GRAM)"
gram_values = all_data["name"].str.contains(pattern)
re.search(pattern, all_data["name"].iloc[0])
Вывод
<re.Match object; span=(0, 8), match='220 gram'>
Как и предполагалось, он экспортирует 220 грамм. Ура.
СЕЙЧАС, если я использую метод pandas .str.extract ...
all_data["name"].str.extract(pattern)
Тогда вывод будет
Тот же шаблон регулярных выражений, два разных выхода. Так какого черта я здесь делаю не так? Как строка регулярного выражения может извлекать разные значения?