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
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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.