Что может сработать для вас, так это разделить потенциальное «значение» и любой потенциальный «суффикс множителя», поэтому предположим, что ваш df['Vehicle Value']
был:
s = pd.Series(['25k', '1.25m', '100k', '500', '2.5k'])
Наш ожидаемый результат должен быть [25000, 1250000, 100000, 500, 2500]
. Итак, мы делаем:
vm = s.str.extract('(?P<value>.*?)(?P<multiplier>[km])?$')
Что дает:
value multiplier
0 25 k
1 1.25 m
2 100 k
3 500 NaN
4 2.5 k
Затем преобразуем множитель в число (k = 1000, m = 1 000 000 и, если не указано, - простооставьте его равным 1), затем умножьте значение на него, например:
df['Numeric Vehicle Value'] = pd.to_numeric(vm['value']) * vm['multiplier'].replace({'k': 1000, 'm': 1000000}).fillna(1)