예제 #1
0
 def get_FONTEINV_treated(self):
     # Conversão da TCC FONTEINV para um objeto pandas DataFrame
     file_name = 'FONTEINV'
     df = download_table_cnv(file_name)
     # Renomeia a coluna SIGNIFICACAO
     df.rename(index=str, columns={'SIGNIFICACAO': 'ORIGEM'}, inplace=True)
     # Inserção da primary key "NA" na tabela de que trata esta função para retratar "missing value"
     df.loc[df.shape[0]] = ['NA', 'NOT AVAILABLE']
     return df
예제 #2
0
 def get_LOCOCOR_treated(self):
     # Conversão da TCC LOCOCOR para um objeto pandas DataFrame
     file_name = 'LOCOCOR'
     df = download_table_cnv(file_name)
     # Renomeia a coluna SIGNIFICACAO
     df.rename(index=str, columns={'SIGNIFICACAO': 'LUGAR'}, inplace=True)
     # Converte para string a coluna especificada
     df['ID'] = df['ID'].astype('str')
     # Inserção da primary key "NA" na tabela de que trata esta função para retratar "missing value"
     df.loc[df.shape[0]] = ['NA', 'NOT AVAILABLE']
     return df
예제 #3
0
 def get_NAT1212_treated(self):
     # Conversão da TCC NAT1212 para um objeto pandas DataFrame
     file_name = 'NAT1212'
     df = download_table_cnv(file_name)
     # Renomeia a coluna SIGNIFICACAO
     df.rename(index=str, columns={'SIGNIFICACAO': 'LOCAL'}, inplace=True)
     # Adiciona zeros à esquerda nos valores (tipo string) da coluna "ID" do objeto "df" até formar uma...
     # "string" de tamanho = 3
     df['ID'] = df['ID'].apply(lambda x: x.zfill(3))
     # Upload do arquivo "xlsx" que contém os NATURAL presentes nos arquivos DOXXxxxx (a partir do ano...
     # de 2001) e não presentes na TCC NAT1212. Ou seja, isso parece ser uma falha dos dados do Datasus
     dataframe = pd.read_excel(self.path +
                               'NATURAL_OUT_NAT1212_ANOS_1997_2017' +
                               '.xlsx')
     # Converte a coluna "ID" do objeto "dataframe" de "int" para "string"
     dataframe['ID'] = dataframe['ID'].astype('str')
     # Adiciona zeros à esquerda nos valores (tipo string) da coluna "ID" do objeto "dataframe" até...
     # formar uma "string" de tamanho = 3
     dataframe['ID'] = dataframe['ID'].apply(lambda x: x.zfill(3))
     # Adiciona a coluna "LOCAL" e respectivos valores ao objeto "dataframe"
     dataframe['LOCAL'] = ['NAO PROVIDO NA TCC NAT1212'
                           ] * (dataframe.shape[0])
     # Concatenação do objeto "dataframe" ao objeto "df"
     frames = []
     frames.append(df)
     frames.append(dataframe)
     dfinal = pd.concat(frames, ignore_index=True)
     # Elimina eventuais linhas duplicadas tendo por base a coluna ID e mantém a primeira ocorrência
     dfinal.drop_duplicates(subset='ID', keep='first', inplace=True)
     # Ordena eventualmente as linhas por ordem crescente dos valores da coluna ID
     dfinal.sort_values(by=['ID'], inplace=True)
     # Reset eventualmente o index devido ao sorting prévio e à eventual eliminação de duplicates
     dfinal.reset_index(drop=True, inplace=True)
     # Inserção da primary key "NA" na tabela de que trata esta função para retratar célula de...
     # string vazia da coluna "NATURAL_ID" da tabela DOBR
     dfinal.loc[dfinal.shape[0]] = ['NA', 'NOT AVAILABLE']
     return dfinal
예제 #4
0
 def get_CID10_treated(self):
     # Conversão da Tabela CID10 para um objeto pandas DataFrame
     file_name = 'CID10'
     df1 = download_table_dbf(file_name)
     # Remove colunas indesejáveis do objeto pandas DataFrame
     df1 = df1.drop(['OPC', 'CAT', 'SUBCAT', 'RESTRSEXO'], axis=1)
     # Renomeia as colunas especificadas
     df1.rename(index=str,
                columns={
                    'CID10': 'ID',
                    'DESCR': 'DOENCA'
                },
                inplace=True)
     # Coloca todas as string da coluna especificada como UPPER CASE
     df1['DOENCA'] = df1['DOENCA'].apply(lambda x: x.upper())
     # Ordena as linhas de "df1" por ordem crescente dos valores da coluna ID
     df1.sort_values(by=['ID'], inplace=True)
     # Reset o index devido ao sorting prévio
     df1.reset_index(drop=True, inplace=True)
     # Conversão das 21 TCC CID10_XX para um objeto pandas DataFrame
     frames = []
     for i in range(1, 22):
         i = str(i).zfill(2)
         file_name = 'CID10_' + i
         dfi = download_table_cnv(file_name)
         frames.append(dfi)
     df2 = pd.concat(frames, ignore_index=True)
     df2.drop_duplicates(subset='ID', keep='first', inplace=True)
     df2.sort_values(by=['ID'], inplace=True)
     df2.reset_index(drop=True, inplace=True)
     # Renomeia a coluna SIGNIFICACAO
     df2.rename(index=str, columns={'SIGNIFICACAO': 'DOENCA'}, inplace=True)
     # Concatena os dois objetos pandas DataFrame
     frames = []
     frames.append(df1)
     frames.append(df2)
     df = pd.concat(frames, ignore_index=True)
     # Elimina linhas duplicadas tendo por base a coluna ID e mantém a primeira ocorrência
     df.drop_duplicates(subset='ID', keep='first', inplace=True)
     # Ordena as linhas de "df" por ordem crescente dos valores da coluna ID
     df.sort_values(by=['ID'], inplace=True)
     # Reset o index devido ao sorting prévio e à eventual eliminação de duplicates
     df.reset_index(drop=True, inplace=True)
     # Upload do arquivo "xlsx" que contém os CAUSABAS OU CAUSABAS_O presentes nos arquivos...
     # DOXXaaaa (dos anos de 1997 a 2017) e não presentes na Tabela CID10 ou nas TCC CID10. Ou seja,...
     # isso parece ser uma falha dos dados do Datasus
     dataframe = pd.read_excel(self.path +
                               'CAUSABAS_OUT_CID10_ANOS_1997_2017' +
                               '.xlsx')
     # Adiciona a coluna "DOENCA" e respectivos valores ao objeto "dataframe"
     dataframe['DOENCA'] = ['NAO PROVIDO EM CID10.DBF E NAS TCC CID10'
                            ] * (dataframe.shape[0])
     # Concatenação do objeto "dataframe" ao objeto "df"
     frames = []
     frames.append(df)
     frames.append(dataframe)
     dfinal = pd.concat(frames, ignore_index=True)
     # Elimina eventuais linhas duplicadas tendo por base a coluna ID e mantém a primeira ocorrência
     dfinal.drop_duplicates(subset='ID', keep='first', inplace=True)
     # Ordena eventualmente as linhas por ordem crescente dos valores da coluna ID
     dfinal.sort_values(by=['ID'], inplace=True)
     # Reset eventualmente o index devido ao sorting prévio e à eventual eliminação de duplicates
     dfinal.reset_index(drop=True, inplace=True)
     # Inserção da primary key "NA" na tabela de que trata esta função para retratar "missing value"
     dfinal.loc[dfinal.shape[0]] = ['NA', 'NOT AVAILABLE']
     return dfinal
예제 #5
0
 def get_CNESDO18_3TCC_treated(self):
     # Conversão da Tabela CNESDO18 para um objeto pandas DataFrame
     file_name = 'CNESDO18'
     df1 = download_table_dbf(file_name)
     # Ordena as linhas de "df1" por ordem crescente dos valores da coluna CODESTAB
     df1.sort_values(by=['CODESTAB'], inplace=True)
     # Elimina eventuais linhas duplicadas tendo por base a coluna CODESTAB e mantém a primeira ocorrência
     df1.drop_duplicates(subset='CODESTAB', keep='first', inplace=True)
     # Reset o index devido ao sorting prévio
     df1.reset_index(drop=True, inplace=True)
     # Adiciona zeros à esquerda nos valores (tipo string) da coluna "CODESTAB" do objeto "df1" até formar...
     # uma "string" de tamanho = 7
     df1['CODESTAB'] = df1['CODESTAB'].apply(lambda x: x.zfill(7))
     # Conversão da TCC ESTAB06 para um objeto pandas DataFrame
     file_name = 'ESTAB06'
     df2 = download_table_cnv(file_name)
     df2.rename(index=str,
                columns={
                    'ID': 'CODESTAB',
                    'SIGNIFICACAO': 'DESCESTAB'
                },
                inplace=True)
     # Adiciona zeros à esquerda nos valores (tipo string) da coluna "CODESTAB" do objeto "df2" até formar...
     # uma "string" de tamanho = 7
     df2['CODESTAB'] = df2['CODESTAB'].apply(lambda x: x.zfill(7))
     # Concatena os dois objetos pandas DataFrame
     frames = []
     frames.append(df1)
     frames.append(df2)
     df = pd.concat(frames, ignore_index=True)
     # Elimina linhas duplicadas
     df.drop_duplicates(subset='CODESTAB', keep='first', inplace=True)
     # Ordena as linhas por ordem crescente dos valores da coluna "CODESTAB"
     df.sort_values(by=['CODESTAB'], inplace=True)
     # Reseta os índices
     df.reset_index(drop=True, inplace=True)
     # Conversão da TCC ESFERA18 para um objeto pandas DataFrame
     file_name = 'ESFERA18'
     df3 = download_table_cnv(file_name)
     # Adequa e formata a TCC ESFERA18
     df3.rename(index=str,
                columns={
                    'ID': 'CODESTAB',
                    'SIGNIFICACAO': 'ESFERA'
                },
                inplace=True)
     # Adiciona zeros à esquerda nos valores (tipo string) da coluna "CODESTAB" do objeto "df3" até formar...
     # uma "string" de tamanho = 7
     df3['CODESTAB'] = df3['CODESTAB'].apply(lambda x: x.zfill(7))
     # Conversão da TCC NAT_ORG (já em formato "xlsx" e não "cnv") para um objeto pandas DataFrame
     file_name = 'NAT_ORG'
     df4 = download_table_cnv(file_name)
     # Adequa e formata a TCC NAT_ORG
     df4.rename(index=str,
                columns={
                    'ID': 'CODESTAB',
                    'SIGNIFICACAO': 'REGIME'
                },
                inplace=True)
     # Adiciona zeros à esquerda nos valores (tipo string) da coluna "CODESTAB" do objeto "df4" até formar...
     # uma "string" de tamanho = 7
     df4['CODESTAB'] = df4['CODESTAB'].apply(lambda x: x.zfill(7))
     # Realiza o "merge" da TCC ESFERA18 à TCC NAT_ORG
     df5 = df3.append(df4, sort=False)
     df6 = df5.replace(np.nan, '').groupby('CODESTAB',
                                           as_index=False).agg(''.join)
     df6.sort_values(by=['CODESTAB'], inplace=True)
     df6.reset_index(drop=True, inplace=True)
     # Realiza o "merge" da TCC ESFERA18 (+ TCC NAT_ORG) à (Tabela CNESDO18 + TCC ESTAB06)
     df7 = df.append(df6, sort=False)
     df8 = df7.replace(np.nan, '').groupby('CODESTAB',
                                           as_index=False).agg(''.join)
     df8.sort_values(by=['CODESTAB'], inplace=True)
     df8.reset_index(drop=True, inplace=True)
     # Substitui os valores de string vazia das colunas especificadas pela string "?"
     df8['DESCESTAB'].replace('', '?', inplace=True)
     df8['ESFERA'].replace('', '?', inplace=True)
     df8['REGIME'].replace('', '?', inplace=True)
     # Upload do arquivo "xlsx" que contém os CODESTAB presentes nos arquivos DOXXaaaa (dos anos de...
     # 1997 a 2017) e não presentes na tabela CNESDO18 e nas TCC ESTAB06, ESFERA18 e NAT_ORG. Ou seja,...
     # isso parece ser uma falha dos dados do Datasus
     dataframe = pd.read_excel(
         self.path + 'CODESTAB_OUT_CNESDO18_E_3TCC_ANOS_1997_2017' +
         '.xlsx')
     # Converte a coluna "CODESTAB" do objeto "dataframe" de "int" para "string"
     dataframe['CODESTAB'] = dataframe['CODESTAB'].astype('str')
     # Adiciona zeros à esquerda nos valores (tipo string) da coluna "CODESTAB" do objeto "dataframe" até formar...
     # uma "string" de tamanho = 7
     dataframe['CODESTAB'] = dataframe['CODESTAB'].apply(
         lambda x: x.zfill(7))
     # Adiciona as colunas "DESCESTAB", "ESFERA" e "REGIME" e respectivos valores ao objeto "dataframe"
     dataframe['DESCESTAB'] = [
         'NAO PROVIDO EM CNESDO18.DBF E NAS TCC ESTAB06/ESFERA18/NAT_ORG'
     ] * (dataframe.shape[0])
     dataframe['ESFERA'] = ['?'] * (dataframe.shape[0])
     dataframe['REGIME'] = ['?'] * (dataframe.shape[0])
     # Concatenação do objeto "dataframe" ao objeto "df8"
     frames = []
     frames.append(df8)
     frames.append(dataframe)
     dfinal = pd.concat(frames, ignore_index=True)
     # Renomeia a coluna "CODESTAB"
     dfinal.rename(index=str, columns={'CODESTAB': 'ID'}, inplace=True)
     # Elimina eventuais linhas duplicadas tendo por base a coluna ID e mantém a primeira ocorrência
     dfinal.drop_duplicates(subset='ID', keep='first', inplace=True)
     # Ordena eventualmente as linhas por ordem crescente dos valores da coluna ID
     dfinal.sort_values(by=['ID'], inplace=True)
     # Reset eventualmente o index devido ao sorting prévio e à eventual eliminação de duplicates
     dfinal.reset_index(drop=True, inplace=True)
     # Inserção da primary key "NA" na tabela de que trata esta função para retratar "missing value"
     dfinal.loc[dfinal.shape[0]] = ['NA', 'NOT AVAILABLE', '?', '?']
     return dfinal
예제 #6
0
 def get_TABOCUP_2TCC_treated(self):
     # Conversão da Tabela TABOCUP para um objeto pandas DataFrame
     file_name = 'TABOCUP'
     df1 = download_table_dbf(file_name)
     # Renomeia as colunas especificadas
     df1.rename(index=str,
                columns={
                    'CODIGO': 'ID',
                    'DESCRICAO': 'OCUPACAO'
                },
                inplace=True)
     # Ordena as linhas de "df1" por ordem crescente dos valores da coluna ID
     df1.sort_values(by=['ID'], inplace=True)
     # Elimina eventuais linhas duplicadas tendo por base a coluna ID e mantém a primeira ocorrência
     df1.drop_duplicates(subset='ID', keep='first', inplace=True)
     # Reset o index devido ao sorting prévio
     df1.reset_index(drop=True, inplace=True)
     # Adiciona zeros à esquerda nos valores (tipo string) da coluna "ID" do objeto "df1" até formar...
     # uma "string" de tamanho = 6
     df1['ID'] = df1['ID'].apply(lambda x: x.zfill(6))
     # Conversão da TCC CBO2002 para um objeto pandas DataFrame
     file_name = 'CBO2002'
     df2 = download_table_cnv(file_name)
     # Renomeia a coluna SIGNIFICACAO
     df2.rename(index=str,
                columns={'SIGNIFICACAO': 'OCUPACAO'},
                inplace=True)
     # Adiciona zeros à esquerda nos valores (tipo string) da coluna "ID" do objeto "df2" até formar...
     # uma "string" de tamanho = 6
     df2['ID'] = df2['ID'].apply(lambda x: x.zfill(6))
     # Conversão da TCC OCUPA para um objeto pandas DataFrame
     file_name = 'OCUPA'
     df3 = download_table_cnv(file_name)
     # Renomeia a coluna SIGNIFICACAO
     df3.rename(index=str,
                columns={'SIGNIFICACAO': 'OCUPACAO'},
                inplace=True)
     # Adiciona zeros à esquerda nos valores (tipo string) da coluna "ID" do objeto "df3" até formar...
     # uma "string" de tamanho = 6
     df3['ID'] = df3['ID'].apply(lambda x: x.zfill(6))
     # Concatena os três objetos pandas DataFrame
     frames = []
     frames.append(df1)
     frames.append(df2)
     frames.append(df3)
     df = pd.concat(frames, ignore_index=True)
     # Elimina linhas duplicadas tendo por base a coluna ID e mantém a primeira ocorrência
     df.drop_duplicates(subset='ID', keep='first', inplace=True)
     # Ordena as linhas por ordem crescente dos valores da coluna "ID"
     df.sort_values(by=['ID'], inplace=True)
     # Reset o index devido ao sorting prévio e à eventual eliminação de duplicates
     df.reset_index(drop=True, inplace=True)
     # Upload do arquivo "xlsx" que contém os OCUP presentes nos arquivos DOXXaaaa (dos anos de...
     #  1997 a 2017) e não presentes na Tabela TABOCUP e nas TCC CBO2002 e OCUPA. Ou seja, isso...
     # parece ser uma falha dos dados do Datasus
     dataframe = pd.read_excel(self.path +
                               'OCUP_OUT_TABOCUP_E_2TCC_ANOS_1997_2017' +
                               '.xlsx')
     # Converte a coluna "ID" do objeto "dataframe" de "int" para "string"
     dataframe['ID'] = dataframe['ID'].astype('str')
     # Adiciona zeros à esquerda nos valores (tipo string) da coluna "ID" do objeto "dataframe" até formar...
     # uma "string" de tamanho = 6
     dataframe['ID'] = dataframe['ID'].apply(lambda x: x.zfill(6))
     # Adiciona a coluna "OCUPACAO" e respectivos valores ao objeto "dataframe"
     dataframe['OCUPACAO'] = [
         'NAO PROVIDO EM TABOCUP.DBF E NAS TCC CBO2002/OCUPA'
     ] * (dataframe.shape[0])
     # Concatenação do objeto "dataframe" ao objeto "df"
     frames = []
     frames.append(df)
     frames.append(dataframe)
     dfinal = pd.concat(frames, ignore_index=True)
     # Elimina eventuais linhas duplicadas tendo por base a coluna ID e mantém a primeira ocorrência
     dfinal.drop_duplicates(subset='ID', keep='first', inplace=True)
     # Ordena eventualmente as linhas por ordem crescente dos valores da coluna ID
     dfinal.sort_values(by=['ID'], inplace=True)
     # Reset eventualmente o index devido ao sorting prévio e à eventual eliminação de duplicates
     dfinal.reset_index(drop=True, inplace=True)
     # Inserção da primary key "NA" na tabela de que trata esta função para retratar "missing value"
     dfinal.loc[dfinal.shape[0]] = ['NA', 'NOT AVAILABLE']
     return dfinal