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
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
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
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
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
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