TransWikia.com

Como transformar todo o Dataset em valores monetarios, ou pelo menos arredonda-los

Stack Overflow em Português Asked by Joao on December 19, 2021

Essa é uma parte de uma coluna do dataset:

0     1.347688e+05

1     1.563599e+05

2     1.788441e+05

3     1.983543e+05

Tentei isso:

from babel.numbers import format_decimal

format_decimal(df.Receita_liquida, locale='en_US')

mas recebi isso>>> [<class 'decimal.ConversionSyntax'>]

Se eu fizer:

format_decimal(1.347688e+05, locale='en_US')

retorna>>> 134,768.8

**que seria suficiente, então preciso otimizar.

One Answer

mas recebi isso>>> [<class 'decimal.ConversionSyntax'>]

Você está passando a coluna inteira do DataFrame como parâmetro para a função format_decimal, que espera um número.

Use o método apply() do DataFrame passando a função que deve ser aplicada a cada elemento da coluna e atribua o resultado de volta à coluna Receita_liquida.

df['Receita_liquida'] = df['Receita_liquida'].apply(format_decimal, locale = 'en_US')

Ou, usando uma função lambda (desnecessário, mas fica mais fácil de entender):

df['Receita_liquida'] = df['Receita_liquida'].apply(lambda x: format_decimal(x, locale='en_US'))

Isso é o máximo que dá para sugerir com o que você colocou na pergunta.

Answered by Guilherme Brügger on December 19, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP