SINASC FTP Database
Sistema de Informações sobre Nascidos Vivos
[1]:
from pysus import SINASC
sinasc = SINASC().load() # Loads the files from DATASUS
[2]:
sinasc
[2]:
SINASC - Sistema de Informações sobre Nascidos Vivos
[3]:
sinasc.metadata
[3]:
{'long_name': 'Sistema de Informações sobre Nascidos Vivos',
'source': 'http://sinasc.saude.gov.br/',
'description': ''}
Listing codes & groups
[4]:
sinasc.groups
[4]:
{'DN': 'Declarações de Nascidos Vivos',
'DNR': 'Dados dos Nascidos Vivos por UF de residência'}
Getting specific files
[5]:
sinasc.get_files("DN", uf="SP") # or multiple ["SP", ...]
[5]:
[DNSP1996.DBC,
DNSP1997.DBC,
DNSP1998.DBC,
DNSP1999.DBC,
DNSP2000.DBC,
DNSP2001.DBC,
DNSP2002.DBC,
DNSP2003.DBC,
DNSP2004.DBC,
DNSP2005.dbc,
DNSP2006.DBC,
DNSP2007.dbc,
DNSP2008.dbc,
DNSP2009.dbc,
DNSP2010.DBC,
DNSP2011.DBC,
DNSP2012.DBC,
DNSP2013.dbc,
DNSP2014.dbc,
DNSP2015.dbc,
DNSP2016.dbc,
DNSP2017.dbc,
DNSP2018.dbc,
DNSP2019.dbc,
DNSP2020.dbc,
DNSP2021.dbc]
[6]:
files = sinasc.get_files("DN", uf="SP", year=[1999, 2000])
files
[6]:
[DNSP1999.DBC, DNSP2000.DBC]
Describing files inside DATASUS server
[7]:
from pprint import pprint
for file in files:
pprint(sinasc.describe(file))
{'group': 'Declarações de Nascidos Vivos',
'last_update': '2020-01-27 12:12PM',
'name': 'DNSP1999.DBC',
'size': '14.3 MB',
'uf': 'São Paulo',
'year': 1999}
{'group': 'Declarações de Nascidos Vivos',
'last_update': '2020-01-27 12:12PM',
'name': 'DNSP2000.DBC',
'size': '14.3 MB',
'uf': 'São Paulo',
'year': 2000}
Downloading files
You can rather download multiple files or download them individually:
[8]:
sinasc.download(files) # Downloads to default directory or specify with `local_dir=`
DNSP2000.parquet: 100%|████████████| 523k/523k [00:15<00:00, 34.3kB/s]
[8]:
[/home/bida/pysus/DNSP1999.parquet, /home/bida/pysus/DNSP2000.parquet]
@Note: If the file has been downloaded already, it’s required to delete it in order to download the lastest updated file from DATASUS.
Reading files
PySUS uses Parquets as output, use the method to_dataframe()
to read the file as pandas DataFrame
[9]:
parquet = sinasc.download(files)[0]
100%|████████████████████████████| 14.3M/14.3M [00:00<00:00, 6.32GB/s]
[10]:
parquet.to_dataframe()
[10]:
contador | LOCNASC | CODMUNNASC | IDADEMAE | ESTCIVMAE | ESCMAE | CODOCUPMAE | QTDFILVIVO | QTDFILMORT | CODMUNRES | ... | GRAVIDEZ | PARTO | CONSULTAS | DTNASC | SEXO | APGAR1 | APGAR5 | RACACOR | PESO | CODANOMAL | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 90001 | 1 | 3550308 | 21 | 9 | 2 | 03 | 00 | 3550308 | ... | 1 | 1 | 8 | 20021999 | 2 | 09 | 10 | 3300 | |||
1 | 90002 | 1 | 3550308 | 23 | 9 | 3 | 01 | 00 | 3550308 | ... | 1 | 1 | 8 | 19031999 | 2 | 09 | 10 | 2300 | |||
2 | 90003 | 1 | 3550308 | 19 | 9 | 2 | 01 | 00 | 3550308 | ... | 1 | 1 | 8 | 09031999 | 1 | 08 | 09 | 4 | 3600 | ||
3 | 90004 | 1 | 3550308 | 16 | 9 | 2 | 00 | 00 | 3550308 | ... | 1 | 1 | 8 | 15031999 | 2 | 09 | 10 | 1 | 2600 | ||
4 | 90005 | 1 | 3550308 | 33 | 9 | 2 | 00 | 00 | 3550308 | ... | 1 | 2 | 8 | 17031999 | 2 | 09 | 09 | 2700 | |||
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
714423 | 299996 | 1 | 3522604 | 18 | 9 | 3 | 01 | 00 | 3522604 | ... | 1 | 1 | 4 | 20051999 | 1 | 08 | 10 | 1 | 3400 | ||
714424 | 299997 | 1 | 3522604 | 37 | 2 | 2 | 01 | 00 | 3522604 | ... | 1 | 2 | 4 | 29051999 | 1 | 09 | 10 | 1 | 3800 | ||
714425 | 299998 | 1 | 3522604 | 21 | 9 | 4 | 00 | 00 | 3522604 | ... | 1 | 1 | 4 | 04061999 | 2 | 09 | 10 | 1 | 3500 | ||
714426 | 299999 | 1 | 3522604 | 34 | 2 | 4 | 00 | 00 | 3522604 | ... | 1 | 2 | 3 | 04061999 | 2 | 09 | 10 | 1 | 3800 | ||
714427 | 300000 | 1 | 3522604 | 37 | 9 | 2 | 05 | 00 | 3522604 | ... | 1 | 1 | 8 | 29051999 | 2 | 10 | 10 | 1 | 3100 |
714428 rows × 21 columns