Nota Técnica: Processo de Transformação de Dados de Leitos do CNES
Comparativo: Arquivo Original vs. Arquivo Tratado
Author
Olavo Costa
Published
January 21, 2026
1 Resumo Executivo
Este documento descreve o processo de ETL (Extract, Transform, Load) aplicado aos dados de leitos hospitalares do CNES (Cadastro Nacional de Estabelecimentos de Saúde), detalhando as transformações realizadas entre o arquivo original (arq1_original.csv) e o arquivo tratado (arq2_tratado.csv).
print("Competências no arquivo original:")print(sorted(df1['competen'].unique()))print(f"\nCompetência no arquivo tratado:")print(sorted(df2.iloc[:,0].unique()))print(f"\nRedução: {len(df1):,} → {len(df1[df1['competen']==202506]):,} registros")
Competências no arquivo original:
[202501, 202502, 202503, 202504, 202505, 202506]
Competência no arquivo tratado:
[202506]
Redução: 309,610 → 51,776 registros
3.2 Etapa 2: Remoção de Colunas
19 colunas removidas:
Ver código
cols1_norm = [c.replace('', '').lower() for c in df1.columns]cols2_norm = [c.replace('', '').lower() for c in df2.columns]removidas = [c for c in df1.columns if c.replace('', '').lower() notin cols2_norm]print("Colunas removidas:")for c in removidas:print(f" - {c}")
mapa_co = df2[['co_leito', 'DS_CO_LEITO']].drop_duplicates().sort_values('co_leito')print(f"Total de códigos de leito mapeados: {len(mapa_co)}")mapa_co.head(15)
Total de códigos de leito mapeados: 65
co_leito
DS_CO_LEITO
361
1
BUCO MAXILO FACIAL
24
2
CARDIOLOGIA
5
3
CIRURGIA GERAL
364
4
ENDOCRINOLOGIA
365
5
GASTROENTEROLOGIA
70
6
GINECOLOGIA
22
7
CIRURGICO/DIAGNOSTICO/TERAPEUTICO
367
8
NEFROLOGIAUROLOGIA
46
9
NEUROCIRURGIA
12
10
OBSTETRICIA CIRURGICA
9
11
OFTALMOLOGIA
369
12
ONCOLOGIA
0
13
ORTOPEDIATRAUMATOLOGIA
371
14
OTORRINOLARINGOLOGIA
372
15
PLASTICA
3.4 Etapa 4: Limpeza de Dados
3.4.1 Remoção do Código de Leito 66
Ver código
df1_202506 = df1[df1['competen'] ==202506]registros_66 = df1_202506[df1_202506['codleito'] ==66]print(f"Registros com codleito = 66 removidos: {len(registros_66):,}")print(f"Leitos removidos: {registros_66['qt_exist'].sum():,}")print(f"Tipo de leito: 3 (COMPLEMENTAR)")
Registros com codleito = 66 removidos: 1,972
Leitos removidos: 5,450
Tipo de leito: 3 (COMPLEMENTAR)