У меня есть df, который выглядит следующим образом, dtype это объект, который не может быть приведен к int или float:
col1
100
100k
100k-100m
10m
50
Как заменить k
на 000
и m
на000000
в этом столбце, который является объектом типа?
Кроме того, как только я могу заменить k
или m
, как мне заменить все, что не является числом, на ничто?
Новый df должен выглядеть следующим образом (а не пробел):
col1
100
100000
10000000
50
Пробовал этот код:
df.col1 = (df.col1.replace(r'[KM]+$', '', regex=True).astype(float) * \
df.col1.str.extract(r'[\d\.]+([KM]+)', expand=False)
.fillna(1)
.replace(['K','M'], [10**3, 10**6]).astype(int))
но столбцы должны быть плавающими