# Criando rótulos para as colunas.
rotulos = ["cnpj_base",
"razao_social",
"natureza_juridica",
"qualificacao",
"capital_social",
"porte_empresa",
"ente_federativo"]
# Caregamento dos arquivos 'csv' parte por parte no notebook.
df_emp_0 = pd.read_csv("/content/K3241.K03200Y0.D20108.EMPRECSV",
sep=';',
names = rotulos,
encoding="latin",
quoting=3,
error_bad_lines=False)
df_emp_1 = pd.read_csv("/content/K3241.K03200Y1.D20108.EMPRECSV",
sep=';',
names = rotulos,
encoding="latin",
quoting=3,
error_bad_lines=False)
df_emp_2 = pd.read_csv("/content/K3241.K03200Y2.D20108.EMPRECSV",
sep=';',
names = rotulos,
encoding="latin",
quoting=3,
error_bad_lines=False)
df_emp_3 = pd.read_csv("/content/K3241.K03200Y3.D20108.EMPRECSV",
sep=';',
names = rotulos,
encoding="latin",
quoting=3,
error_bad_lines=False)
df_emp_4 = pd.read_csv("/content/K3241.K03200Y4.D20108.EMPRECSV",
sep=';',
names = cabecalho,
encoding="latin",
quoting=3,
error_bad_lines=False)
df_emp_5 = pd.read_csv("/content/K3241.K03200Y5.D20108.EMPRECSV",
sep=';',
names = rotulos,
encoding="latin",
quoting=3,
error_bad_lines=False)
df_emp_6 = pd.read_csv("/content/K3241.K03200Y6.D20108.EMPRECSV",
sep=';',
names = rotulos,
encoding="latin",
quoting=3,
error_bad_lines=False)
df_emp_7 = pd.read_csv("/content/K3241.K03200Y7.D20108.EMPRECSV",
sep=';',
names = rotulos,
encoding="latin",
quoting=3,
error_bad_lines=False)
df_emp_8 = pd.read_csv("/content/K3241.K03200Y8.D20108.EMPRECSV",
sep=';',
names = rotulos,
encoding="latin",
quoting=3,
error_bad_lines=False)
df_emp_9 = pd.read_csv("/content/K3241.K03200Y9.D20108.EMPRECSV",
sep=';',
names = rotulos,
encoding="latin",
quoting=3,
error_bad_lines=False)
# Deletando as colunas que não iremos utilizar através do método drop do pandas:
deletar_col = ["razao_social",
"natureza_juridica",
"qualificacao",
"capital_social",
"ente_federativo"]
df_emp_lim_0 = df_emp_0.drop(columns= deletar_col)
df_emp_lim_1 = df_emp_1.drop(columns= deletar_col)
df_emp_lim_2 = df_emp_2.drop(columns= deletar_col)
df_emp_lim_3 = df_emp_3.drop(columns= deletar_col)
df_emp_lim_4 = df_emp_4.drop(columns= deletar_col)
df_emp_lim_5 = df_emp_5.drop(columns= deletar_col)
df_emp_lim_6 = df_emp_6.drop(columns= deletar_col)
df_emp_lim_7 = df_emp_7.drop(columns= deletar_col)
df_emp_lim_8 = df_emp_8.drop(columns= deletar_col)
df_emp_lim_9 = df_emp_9.drop(columns= deletar_col)
# Concatenando todas as partes da base empresas
df_empresas = pd.concat([df_emp_lim_0,
df_emp_lim_1,
df_emp_lim_2,
df_emp_lim_3,
df_emp_lim_4,
df_emp_lim_5,
df_emp_lim_6,
df_emp_lim_7,
df_emp_lim_8,
df_emp_lim_9])
#Salvando a base obtida em arquivo csv.
df_empresas.to_csv("/content/emp_final.csv")
rotulos = ["cnpj_base",
"cnpj_ordem",
"cnpj_dv",
"cd_matriz_filial",
"nome_fantasia",
"cd_situacao_cadastral",
"dt_situacao_cadastral",
"cd_motivo_situacao_cadastral",
"cidade_exterior", "cd_pais",
"dt_inicio_atividade",
"cd_cnae_principal",
"cd_cnae_secundario",
"tipo_logradouro",
"logradouro",
"numero",
"complemento",
"bairro",
"cep",
"uf",
"cd_municipio",
"ddd1",
"telefone1",
"ddd2",
"telefone2",
"ddd_fax",
"fax",
"email",
"situacao_especial",
"dt_situacao_especial"]
# Importando os arquivos csv da base estabelecimentos
df_est_0 = pd.read_csv("/content/K3241.K03200Y0.D20108.ESTABELE",
sep=';',
names = rotulos,
encoding="latin",
quoting=3,
error_bad_lines=False)
df_est_1 = pd.read_csv("/content/K3241.K03200Y1.D20108.ESTABELE",
sep=';',
names = rotulos,
encoding="latin",
quoting=3,
error_bad_lines=False)
df_est_2 = pd.read_csv("/content/K3241.K03200Y2.D20108.ESTABELE",
sep=';',
names = rotulos,
encoding="latin",
quoting=3,
error_bad_lines=False)
df_est_3 = pd.read_csv("/content/K3241.K03200Y3.D20108.ESTABELE",
sep=';',
names = rotulos,
encoding="latin",
quoting=3,
error_bad_lines=False)
df_est_4 = pd.read_csv("/content/K3241.K03200Y4.D20108.ESTABELE",
sep=';',
names = rotulos,
encoding="latin",
quoting=3,
error_bad_lines=False)
df_est_5 = pd.read_csv("/content/K3241.K03200Y5.D20108.ESTABELE",
sep=';',
names = rotulos,
encoding="latin",
quoting=3,
error_bad_lines=False)
df_est_6 = pd.read_csv("/content/K3241.K03200Y6.D20108.ESTABELE",
sep=';',
names = rotulos,
encoding="latin",
quoting=3,
error_bad_lines=False)
df_est_7 = pd.read_csv("/content/K3241.K03200Y7.D20108.ESTABELE",
sep=';',
names = rotulos,
encoding="latin",
quoting=3,
error_bad_lines=False)
df_est_8 = pd.read_csv("/content/K3241.K03200Y8.D20108.ESTABELE",
sep=';',
names = rotulos,
encoding="latin",
quoting=3,
error_bad_lines=False)
df_est_9 = pd.read_csv("/content/K3241.K03200Y9.D20108.ESTABELE",
sep=';',
names = rotulos,
encoding="latin",
quoting=3,
error_bad_lines=False)
deletar_coluna = ["cd_matriz_filial",
"nome_fantasia",
"cidade_exterior",
"cd_pais",
"tipo_logradouro",
"logradouro",
"numero",
"complemento",
"bairro",
"cep",
"ddd1",
"telefone1",
"ddd2",
"telefone2",
"ddd_fax",
"fax",
"email",
"situacao_especial",
"dt_situacao_especial"]
# Deletando as colunas que não iremos utilizar através do método drop do pandas:
df_est_lim_0 = df_est_0.drop(columns= deletar_coluna)
df_est_lim_1 = df_est_1.drop(columns= deletar_coluna)
df_est_lim_2 = df_est_2.drop(columns= deletar_coluna)
df_est_lim_3 = df_est_3.drop(columns= deletar_coluna)
df_est_lim_4 = df_est_4.drop(columns= deletar_coluna)
df_est_lim_5 = df_est_5.drop(columns= deletar_coluna)
df_est_lim_6 = df_est_6.drop(columns= deletar_coluna)
df_est_lim_7 = df_est_7.drop(columns= deletar_coluna)
df_est_lim_8 = df_est_8.drop(columns= deletar_coluna)
df_est_lim_9 = df_est_9.drop(columns= deletar_coluna)
# Concatenando todas as partes do arquivo estabelecimentos
df_est_final = pd.concat(
[df_est_lim_0, df_est_lim_1,
df_est_lim_2, df_est_lim_3,
df_est_lim_4, df_est_lim_5,
df_est_lim_6, df_est_lim_7,
df_est_lim_8, df_est_lim_9])
df_est_final.to_csv("/content/est_final.csv")
df_empresas = pd.read_csv('/work/bases/emp_final.csv',
sep=",",
usecols=["cnpj_base", "porte_empresa"],
encoding="latin")
# Verificar as primeiras linhas
df_empresas.head()
# Remover aspas indevidas
df_empresas = df_empresas.replace('"','', regex=True)
df_empresas.info()
df_empresas.isnull().sum()
# Remoção de dados nulos
df_empresas = df_empresas.dropna()
df_empresas.isnull().sum()
df_empresas["porte_empresa"].value_counts()
# Tratamento aplicado: replace()
df_empresas["porte_empresa"] = df_empresas["porte_empresa"].\
replace(['01', '03', '05', '',
'0,00', '49', '10000,00',
'810137,00','16', '150000,00'],
['MEI', 'EEP', 'DEMAIS',
'NAO_INFORMADO','NAO_LISTADO',
'NAO_LISTADO', 'NAO_LISTADO',
'NAO_LISTADO', 'NAO_LISTADO',
'NAO_LISTADO'], regex=True)
df_empresas["porte_empresa"]= df_empresas["porte_empresa"].astype(str)
df_final_empresas = df_empresas.query("porte_empresa== ['MEI', 'EEP', 'NAO_INFORMADO']")
# resultado
df_final_empresas["porte_empresa"].value_counts()
df_final_empresas.head()
df_final_empresas.to_csv("/work/bases/final_empresas.csv")
df_estabelecimentos = pd.read_csv("/work/bases/est_final.csv",
sep=",",
usecols= ["cnpj_base", "cnpj_ordem",
"cnpj_dv", "cd_situacao_cadastral",
"dt_situacao_cadastral",
"cd_motivo_situacao_cadastral",
"dt_inicio_atividade",
"cd_cnae_principal",
"cd_cnae_secundario",
"uf", "cd_municipio"],
encoding="latin")
df_estabelecimentos.head()
# Remover aspas dos dados
df_estabelecimentos= df_estabelecimentos.replace('"','', regex= True)
# Verificando valores nulos
df_estabelecimentos.isnull().sum()
# Removendo valores nulos
df_estabelecimentos.dropna(inplace= True)
# Renomeando coluna
df_estabelecimentos["cnpj_base_2"] = df_estabelecimentos['cnpj_base'].astype(str)
# Realizando merge nas bases
df_final = pd.merge(left = df_estabelecimentos, right = df_final_empresas,
how = "inner", left_on ="cnpj_base_2", right_on="cnpj_base")
# Salvando a nova base gerado em arquivo .csv.
df_final.to_csv("/work/bases/final_total.csv")
# Carregando a base do csv.
df_final = pd.read_csv("/work/bases/final_total.csv")
df_final.head()
df_final.info()
# Drop de colunas desnecessárias
df_final = df_final.drop(
columns=[
"Unnamed: 0",
"cnpj_ordem",
"cnpj_dv",
"cd_motivo_situacao_cadastral",
"cnpj_base_2",
"cnpj_base_y"])
# Verificando dados nulos
df_final.isnull().sum()
# Tratando valores nulos
df_final= df_final.fillna(0)
# Resultado após o tratamento
df_final.isnull().sum()
# Selecionando apenas a região Sudeste
df_sudeste = df_final[(df_final["uf"] == "RJ") | (df_final["uf"] == "SP") \
| (df_final["uf"] == "MG") | (df_final["uf"] == "ES")]
# Filtrando situação cadastral
df_sudeste = df_sudeste.query("dt_situacao_cadastral != 0")
# Filtrando início de atividades
df_sudeste = df_sudeste.query("dt_inicio_atividade != 0")
# Convertendo colunas no formato datetime (apenas ano)
df_sudeste["dt_situacao_cadastral"] = pd.to_datetime(
df_sudeste["dt_situacao_cadastral"],
format='%Y%m%d').dt.year
df_sudeste["dt_inicio_atividade"] = pd.to_datetime(
df_sudeste["dt_inicio_atividade"],
format='%Y%m%d').dt.year
# Alterando legendas da coluna
df_sudeste['cd_situacao_cadastral']= df_sudeste['cd_situacao_cadastral']\
.replace(
[2, 1, 3, 4, 8],
['ATIVA', 'INATIVA',
'INATIVA', 'INATIVA',
'INATIVA'],
regex= True)
df_sudeste.head()
df_sudeste.to_csv("/work/bases/final_total_mod.csv")