Вам необходимо добавить группы захвата в ваше регулярное выражение.
Я предположил простейший случай, поскольку вы не предоставили ни одного примера ваших данных:
>> df
text
0 green123apple
1 yellow45.6banana
Итак, вот новое регулярное выражение: "(\d+(?:\.\d+)?)"
Если мы разделим регулярное выражение, мы получим:
Часть ?:
означает, что вы не хотите захватывать эту внутреннюю группу, вам не нужно получать десятичное числочасть в отдельной группе.Вы просто хотите получить целое число.
Вывод:
>> df["new"] = df["text"].str.extract("(\d+(?:\.\d+)?)")
>> df
text new
0 green123apple 123
1 yellow45.6banana 45.6