Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Escolhendo Local do ponto (.) em uma string númerica no pandas

Salve salve!!

Pessoal, tenho uma sequência de valores da seguinte forma 14054539 mas o valor correto deveria ser 140545.39 como realizar essa alteração em todas as linhas de uma coluna ? que materiais ou exemplos poderia seguir para solucionar esse problema?

desde já agradeço a ajuda.

4 respostas

Pessoal estou conseguindo um progresso utilizando a sequinte forma:

numero ='14054539'
numero = numero[:(len(numero)-2)] + '.' + numero[-2:]
print(numero)

Agora estou tentando aplicar para toda a coluna de um dataframe, caso alquém tenha uma ideia de como fazer isso.

Bom pessoal, consegui solucionar da seguinte forma: No meu caso precisava aplicar essa reansformação sem considerar os nulos (por isso utilizo o len >3 'nan') dessa forma funcionou, sei que pode ser melhorada caso alguém tenha uma ideia para contribuir.

def process(my_str):
        l = str(my_str)
        if len(l) > 3:
            l = l[:(len(l)-2)] + '.' + l[-2:]
        return pd.Series(l)

df['NOME_COLUNA'] = df['NOME_COLUNA'].apply(process)
solução!

Olá Diego, tudo bem ? Espero que sim.

Gostei bastante da solução que você conseguiu.

Dois pontos que eu acredito que podem ser modificados é retirar o len(l) e o pd.Series. Você conseguir os mesmo resultados sem eles e tambem colocar o um float no return tornando assim sua coluna float64.

def process(my_str):
        l = str(my_str)
        if len(l) > 3:
            l = l[:-2] + '.' + l[-2:]
        return float(l)

Espero ter ajudado e novamente parabéns pela sua solução.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

obrigado por sua colaboração