Как я могу заменить подстроку определенного столбца чем-то, что я хочу в Pandas of Python? - PullRequest
0 голосов
/ 10 ноября 2019

enter image description here

Я хочу заменить все «k» на 000 в столбце «Значение транспортного средства», что означает, что данные в «Значение транспортного средства» должны быть представлены как 25000 10000,10000 .....

Как я могу это сделать? Есть ли у «Панд» функция для ее достижения?

1 Ответ

0 голосов
/ 10 ноября 2019

Что может сработать для вас, так это разделить потенциальное «значение» и любой потенциальный «суффикс множителя», поэтому предположим, что ваш 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)
...