def load_anos(estado): ''' Lê dados do SIM diretamente do Cache. Todos os anos disponíveis para o Estado ''' cols2read = ['NUMERODO', 'CODMUNOCOR', 'DTOBITO', 'CAUSABAS', 'IDADE', 'SEXO', 'LINHAA', 'LINHAB'] anos = [] for fi in cache_contents(): if (f'SIM_DO{estado}' in fi): print("Loading ", fi) df = pd.read_parquet(fi, engine='pyarrow', columns=cols2read) df = converte_datas(df) df['idade'] = df.IDADE.apply(lambda x: decodifica_idade_SIM(x)) df.set_index('DTOBITO', inplace=True) anos.append(df) # print(meses) ddf = pd.concat(anos) return ddf
def test_decodifica_idade_retorna_em_anos_SIM(self): res = decoders.decodifica_idade_SIM(['501'], unidade='Y') assert_array_equal(res, np.array([101])) res = decoders.decodifica_idade_SIM(['401'] * 2, unidade='Y') assert_array_equal(res, np.array([1] * 2)) res = decoders.decodifica_idade_SIM(['311'] * 3, unidade='Y') assert_array_almost_equal(res, np.array([0.904109589] * 3), decimal=3) res = decoders.decodifica_idade_SIM(['224'] * 4, unidade='Y') assert_array_almost_equal(res, np.array([0.065753425]*4), decimal=3) res = decoders.decodifica_idade_SIM(['130'] * 5, unidade='Y') assert_array_almost_equal(res, np.array([0.00274] * 5), decimal=3) res = decoders.decodifica_idade_SIM(['010'] * 6, unidade='m') assert_array_almost_equal(res, np.array([10.] * 6))
def test_decodifica_idade_retorna_em_anos_SIM(self): res = decoders.decodifica_idade_SIM(["501"], unidade="Y") assert_array_equal(res, np.array([101])) res = decoders.decodifica_idade_SIM(["401"] * 2, unidade="Y") assert_array_equal(res, np.array([1] * 2)) res = decoders.decodifica_idade_SIM(["311"] * 3, unidade="Y") assert_array_almost_equal(res, np.array([0.904109589] * 3), decimal=3) res = decoders.decodifica_idade_SIM(["224"] * 4, unidade="Y") assert_array_almost_equal(res, np.array([0.065753425] * 4), decimal=3) res = decoders.decodifica_idade_SIM(["130"] * 5, unidade="Y") assert_array_almost_equal(res, np.array([0.00274] * 5), decimal=3) res = decoders.decodifica_idade_SIM(["010"] * 6, unidade="m") assert_array_almost_equal(res, np.array([10.0] * 6))