Добавление столбца в DataFrame, заполняемого результатом поиска подстроки в существующем столбце

Есть DataFrame, загружаемый из csv-файла (это получается).

Надо сформировать (добавить) столбец, заполняемый цифрами, идущими после totalSum= в столбце F15 исходного DataFrame. В итоге родилась конструкция

df['totS'] = str(re.findall(r'\d{1,}', str(re.findall(r'totalSum=\d{1,}', str(df['F15'])))))

Но результат такой: введите сюда описание изображения

Запутался с преобразованием типов данных, как я понимаю. Прошу подсказки. А может, есть более изящное решение.


Ответы (3 шт):

Автор решения: Kirill Kondratenko

Если во всех строках столбца разделитель одинаковый и дальше идут только искомые цифры, то можно попробовать

df['totS'] = df['F15'].astype(str).str.split('totalSum=', expand=True)[1]
→ Ссылка
Автор решения: ProstoAndrey

Благодаря подсказке коллеги radjaz родилось громоздкое, но работающее решение вопроса:

df_gin2s_sel['totS_1'] = df_gin2s_sel['F15'].astype(str).str.split('totalSum=', expand=True)[1].astype(str).str.split('#', expand=True)[0]

Это главное. Но всё равно что-то с типами данных не то -

SettingWithCopyWarning: 

A value is trying to be set on a copy of a slice from a DataFrame. Try using .loc[row_indexer,col_indexer] = value instead

→ Ссылка
Автор решения: Алексей Р

Если вопрос только в извлечении цифр из строки после totalSum=, то это легко решается с помощью метода str.extract() и регулярного выражения с последующим преобразованием в число:

df = pd.DataFrame({'F15': ['totalSum=12345#sdlknfancs', 'totalSum=     412156!это сумма!', 'totalSum= 412.156', 'totalSum= 117.25.800']})
df['new'] = df.F15.str.extract(r'totalSum=\s*([\d]+\.?[\d]*)').astype(float)
print(df)
                               F15         new
0        totalSum=12345#sdlknfancs   12345.000
1  totalSum=     412156!это сумма!  412156.000
2                totalSum= 412.156     412.156
3             totalSum= 117.25.800     117.250
→ Ссылка