Python Forum
PANDAS: DataFrame | Saving the wrong value - Printable Version

+- Python Forum (https://python-forum.io)
+-- Forum: Python Coding (https://python-forum.io/forum-7.html)
+--- Forum: Data Science (https://python-forum.io/forum-44.html)
+--- Thread: PANDAS: DataFrame | Saving the wrong value (/thread-36021.html)



PANDAS: DataFrame | Saving the wrong value - moduki1 - Jan-10-2022

I have a column called 'cnpjfornecedor' the original value is 08.482.581/0001-57 i need to remove the special caracters to have 08482581000157

i'm using this code

## /*-+.,<>;:\'@#$%¨&"=()+ and strip á é í ó ú

#ficou fora = valorvenda, valorcusto, codfranqueadora,unidademedida, percroyalties, 

dados1 = {'\\': '', '*': '', '-': ' ','+': '', '.': '', ',': '', '<': '', '>': '', ';': '', ':': '','\'': '', '@': '', '#': '',
        '$': '', '%': '', '¨': '', '&': '', '=': '', '(': '', ')': '', 'á': 'a', 'é': 'e', 'í': 'i', 'ó': 'o', 'ú': 'u', 
        'Á': 'A', 'É': 'E', 'Í': 'I', 'Ó': 'O', 'Ú': 'U'}

dados2 = {'/': '', '-': '', '.': '', ',': ''}

for old, new in dados1.items():
    df['modelo']=df['modelo'].str.replace(old, new, regex=False)
    df['referencia']=df['referencia'].str.replace(old, new, regex=False)
    df['ean']=df['ean'].replace(old, new, regex=False)
    df['codncm']=df['codncm'].replace(old, new)
    df['descricao']=df['descricao'].str.replace(old, new, regex=False)
    df['cor']=df['cor'].str.replace(old, new, regex=False)
    df['tamanho']=df['tamanho'].replace(old, new, regex=False)
    df['linha']=df['linha'].str.replace(old, new, regex=False)
    df['artigo']=df['artigo'].str.replace(old, new, regex=False)
    df['genero']=df['genero'].str.replace(old, new, regex=False)
    df['material']=df['material'].str.replace(old, new, regex=False)
    df['faixa']=df['faixa'].str.replace(old, new, regex=False)
    df['colecao']=df['colecao'].str.replace(old, new, regex=False)
    df['origem']=df['origem'].str.replace(old, new, regex=False)
    df['marca']=df['marca'].str.replace(old, new, regex=False)
    df['compartigo']=df['compartigo'].replace(old, new, regex=False)
    df['cnpjloja']=df['cnpjloja'].replace(old, new, regex=False)
    
for old, new in dados2.items():
    df['cnpjfornecedor']=df['cnpjfornecedor'].str.replace(old, new, regex=False)


the result in jupyter is showing the right answer but when i save the new file using this code:

df.to_csv('finalfodastico.csv', sep=';', index=False)
the value that shows in the csv column is:
8,48258E+12 in the cell and 8482581000157 in the line.
idk why it removes the first caracter that is 0 and how can i set to show the right value in the column?