Я применил некоторую последовательность функций к переменной моего фрейма данных.Переменная var моего фрейма данных выглядит следующим образом:
df['var'].head()
0 R$ 140.284,04
1 R$ -200.131,47
2 R$ -77.837,78
3 R$ 524.782,95
4 R$ 871.251,02
Name: var, dtype: object
Я хотел бы заменить:
- "R $" на "" (Другими словами, drop "R $ ")
- ". "by "" (другими словами, drop ".")
- "," by "."
- преобразовать в число с плавающей точкой
Я пробовал что-то вроде этого:
def rep1(x):
return(x.replace('R$',''))
def rep2(x):
return(x.replace('.',''))
def as_float(x):
return(float(x.replace(',','.')))
df['var'] = df['var'].map(rep1)
df['var'] = df['var'].map(rep2)
df['var'] = df['var'].map(as_float)
Обратите внимание, что для того, чтобы они работали, я должен был соблюдать порядок, показанный выше при применении последовательности функций.Это действительно работает, но я бы хотел более короткий и элегантный синтаксис.Кроме того, я хотел бы применить одну и ту же процедуру к нескольким переменным одновременно.Как то так:
df['var', 'var2'] = df['var', 'var2'].map(my_unified_function)