import pandas as pd
import chardet
with open ('dados_sus.csv', 'rb') as file:
print (chardet.detect(file.read()))
dados = pd.read_csv('dados_sus.csv', encoding='ISO-8859-1', sep= ';', skiprows=3, skipfooter=9, engine='python')
dados
import pandas as pd
import chardet
with open ('dados_sus.csv', 'rb') as file:
print (chardet.detect(file.read()))
dados = pd.read_csv('dados_sus.csv', encoding='ISO-8859-1', sep= ';', skiprows=3, skipfooter=9, engine='python')
dados
Seu código está quase correto para detectar a codificação e ler o arquivo CSV do SUS com pandas. Vou dar uma explicação breve e algumas sugestões para garantir que funcione bem:
python
Copiar
Editar
import pandas as pd
import chardet
with open('dados_sus.csv', 'rb') as file:
rawdata = file.read()
result = chardet.detect(rawdata)
print(result)
dados = pd.read_csv(
'dados_sus.csv',
encoding='ISO-8859-1', # ou outra codificação detectada
sep=';',
skiprows=3,
skipfooter=9,
engine='python'
)
print(dados.head())
Algumas dicas:
O chardet.detect() lê todo o arquivo, então é melhor salvar esse resultado antes de tentar ler com pandas.
Use engine='python' quando usar skipfooter.
Garanta que o encoding passado para o read_csv seja exatamente o que o chardet retornar (result['encoding']).
Para grandes arquivos, pode ser melhor ler só parte do arquivo para detectar encoding.