<jupyter_start><jupyter_text><jupyter_code>import numpy as np #biblioteca utilizada para trabalhar com vetores
import pandas as pd #biblioteca para trabalhar com dataframes
import seaborn as sns #biblioteca utilizada para criar gráficos
import matplotlib.pyplot as plt #biblioteca para criar gráficos estilo Matlab
import google<jupyter_output><empty_output><jupyter_text>**Tabela Ocorrência**<jupyter_code>df_ocorrencia = pd.read_csv('../content/ocorrencia.csv', sep=";")
df_ocorrencia.head()

#analisando o dataset
df_ocorrencia.info()
#verificando a existência de campos nulos
df_ocorrencia.isnull().sum()
#verificando as colunas nulas
df_ocorrencia.describe()<jupyter_output><empty_output><jupyter_text>**Tabela Aeronave**<jupyter_code>df_aeronave = pd.read_csv('../content/aeronave.csv', sep=";")
df_aeronave.head()<jupyter_output><empty_output><jupyter_text>**Tabela Fator Contribuinte**<jupyter_code>df_fator_contribuinte = pd.read_csv('../content/fator_contribuinte.csv', sep=";")
df_fator_contribuinte.head()<jupyter_output><empty_output><jupyter_text>**Tabela Ocorrência Tipo**<jupyter_code>df_ocorrencia_tipo = pd.read_csv('../content/ocorrencia_tipo.csv', sep=";")
df_ocorrencia_tipo.head()<jupyter_output><empty_output><jupyter_text>**Tabela Recomendação**<jupyter_code>df_recomendacao = pd.read_csv('../content/recomendacao.csv', sep=";")
df_recomendacao.head()<jupyter_output><empty_output><jupyter_text>**Ocorrências** - Informações sobre as ocorrências<jupyter_code># Contando ocorrências sem repetição
df=df_ocorrencia
print("Existem no total {} ocorrências.".format(df_ocorrencia['codigo_ocorrencia'].nunique()))

# Contando classificações de ocorrências

df = pd.DataFrame(df_ocorrencia['ocorrencia_classificacao'].value_counts())
df['%'] = 100*df['ocorrencia_classificacao']/df_ocorrencia['ocorrencia_classificacao'].shape[0]
df
#analisando a distribuição de ocorrências em cada categoria
sns.countplot(x='ocorrencia_classificacao', data=df_ocorrencia); 
plt.title('Distribuição das ocorrências');  #adiciona o título no gráfico<jupyter_output><empty_output><jupyter_text>**Estados com mais Ocorrências**<jupyter_code># Estados com mais Ocorrências
df = pd.DataFrame(df_ocorrencia['ocorrencia_uf'].value_counts())
df['%'] = 100*df['ocorrencia_uf']/df_ocorrencia['ocorrencia_uf'].shape[0]
df<jupyter_output><empty_output><jupyter_text>**Cidades com mais Ocorrências**<jupyter_code># Cidades com mais Ocorrências
df = pd.DataFrame(df_ocorrencia['ocorrencia_cidade'].value_counts())
df['%'] = 100*df['ocorrencia_cidade']/df_ocorrencia['ocorrencia_cidade'].shape[0]
df<jupyter_output><empty_output><jupyter_text>**Divulgação de relatório publicado**<jupyter_code># Divulgação de relatório publicado
df = pd.DataFrame(df_ocorrencia['divulgacao_relatorio_publicado'].value_counts())
df['%'] = 100*df['divulgacao_relatorio_publicado']/df_ocorrencia['divulgacao_relatorio_publicado'].shape[0]
df<jupyter_output><empty_output><jupyter_text>**Ocorrências por ano**<jupyter_code>#transformar datatime em ano com criaçaõd e nova coluna "Year"
df_year=df_ocorrencia
df_year['Year'] = pd.DatetimeIndex(df_year['ocorrencia_dia']).year 
df_year.head()
# Maiores ocorrências por ano
df = pd.DataFrame(df_ocorrencia['Year'].value_counts())
df['%'] = 100*df['Year']/df_ocorrencia['Year'].shape[0]
df
#Gráfico por ano
sns.countplot(x='Year', data=df_ocorrencia); 
plt.title('Ocorrências por ano');  #adiciona o título no gráfico<jupyter_output><empty_output><jupyter_text>**Datas com mais ocorrências**<jupyter_code># Datas com mais ocorrências
df_ocorrencia['ocorrencia_dia'].value_counts()<jupyter_output><empty_output><jupyter_text>**Horários com mais ocorrências**<jupyter_code># Horários com mais ocorrências
df = pd.DataFrame(df_ocorrencia['ocorrencia_hora'].value_counts())
df['%'] = 100*df['ocorrencia_hora']/df_ocorrencia['ocorrencia_hora'].shape[0]
df<jupyter_output><empty_output><jupyter_text>**Tipo de ocorrências mais comuns** - Informações sobre o tipo de ocorrência.<jupyter_code># Tipo de ocorrências mais comuns
df = pd.DataFrame(df_ocorrencia_tipo['ocorrencia_tipo'].value_counts())
df['%'] = 100*df['ocorrencia_tipo']/df_ocorrencia_tipo['ocorrencia_tipo'].shape[0]
df
# Tipo de categoria mais comuns
df = pd.DataFrame(df_ocorrencia_tipo['ocorrencia_tipo_categoria'].value_counts())
df['%'] = 100*df['ocorrencia_tipo_categoria']/df_ocorrencia_tipo['ocorrencia_tipo_categoria'].shape[0]
df<jupyter_output><empty_output><jupyter_text>**Aeronave** - Informações sobre as aeronaves envolvidas nas ocorrências<jupyter_code>#Ocorrências por marca de avião
df = pd.DataFrame(df_ocorrencia_aeronave['aeronave_fabricante'].value_counts())
df['%'] = 100*df['aeronave_fabricante']/df_ocorrencia_aeronave['aeronave_fabricante'].shape[0]
df
#Ocorrências por categoria de aeronave
df = pd.DataFrame(df_ocorrencia_aeronave['aeronave_operador_categoria'].value_counts())
df['%'] = 100*df['aeronave_operador_categoria']/df_ocorrencia_aeronave['aeronave_operador_categoria'].shape[0]
df
#Ocorrências por tipo de aeronave
df = pd.DataFrame(df_ocorrencia_aeronave['aeronave_tipo_veiculo'].value_counts())
df['%'] = 100*df['aeronave_tipo_veiculo']/df_ocorrencia_aeronave['aeronave_tipo_veiculo'].shape[0]
df
#Ocorrências por motor de aeronave
df = pd.DataFrame(df_ocorrencia_aeronave['aeronave_motor_quantidade'].value_counts())
df['%'] = 100*df['aeronave_motor_quantidade']/df_ocorrencia_aeronave['aeronave_motor_quantidade'].shape[0]
df
#Ocorrências por quantidade de assentos
df = pd.DataFrame(df_ocorrencia_aeronave['aeronave_assentos'].value_counts())
df['%'] = 100*df['aeronave_assentos']/df_ocorrencia_aeronave['aeronave_assentos'].shape[0]
df
#Ocorrências por operação
df = pd.DataFrame(df_ocorrencia_aeronave['aeronave_fase_operacao'].value_counts())
df['%'] = 100*df['aeronave_fase_operacao']/df_ocorrencia_aeronave['aeronave_fase_operacao'].shape[0]
df
#Danos da aeronave por ocorrências
df = pd.DataFrame(df_ocorrencia_aeronave['aeronave_nivel_dano'].value_counts())
df['%'] = 100*df['aeronave_nivel_dano']/df_ocorrencia_aeronave['aeronave_nivel_dano'].shape[0]
df<jupyter_output><empty_output><jupyter_text>**Ocorrências com fatalidades** Teste<jupyter_code>#concatenando as duas bases de dados "ocorrencia" and "aeronave"
df_ocorrencia_aeronave=df_ocorrencia.merge(df_aeronave, on='codigo_ocorrencia2')
df_ocorrencia_aeronave.head()

#Selecionando ocorrências com fatalidades

df_ocorrencia_aeronave
filtro  = df_ocorrencia_aeronave['aeronave_fatalidades_total'] > 0
df_fatalidade = df_ocorrencia_aeronave[filtro]
df_fatalidade.head()<jupyter_output><empty_output><jupyter_text>Quantidade de ocorréncias com fatalidade<jupyter_code>#Quantidade de ocorréncias com fatalidade
df = pd.DataFrame(df_fatalidade['ocorrencia_classificacao'].value_counts())
df<jupyter_output><empty_output><jupyter_text>Total fatalidades<jupyter_code># Total fatalidades
#df_ocorrencia_aeronave['aeronave_fatalidades_total'].sum()
print("O número total de fatalidades é de {}.".format(df_ocorrencia_aeronave['aeronave_fatalidades_total'].sum()))<jupyter_output>O número total de fatalidades é de 826.<jupyter_text>Fatalidades por cidade<jupyter_code>df = pd.DataFrame(df_fatalidade['ocorrencia_cidade'].value_counts())
df['%'] = 100*df['ocorrencia_cidade']/df_fatalidade['ocorrencia_cidade'].shape[0]
df<jupyter_output><empty_output><jupyter_text>Fatalidades por ano<jupyter_code>#Gráfico por ano
sns.countplot(x='Year', data=df_fatalidade); 
plt.title('Fatalidades por ano');<jupyter_output><empty_output><jupyter_text>Fatalidades por tipo de veículo<jupyter_code>df = pd.DataFrame(df_fatalidade['aeronave_tipo_veiculo'].value_counts())
df['%'] = 100*df['aeronave_tipo_veiculo']/df_fatalidade['aeronave_tipo_veiculo'].shape[0]
df<jupyter_output><empty_output><jupyter_text>Fatalidades por tipo de motor<jupyter_code>df = pd.DataFrame(df_fatalidade['aeronave_motor_quantidade'].value_counts())
df['%'] = 100*df['aeronave_motor_quantidade']/df_fatalidade['aeronave_motor_quantidade'].shape[0]
df<jupyter_output><empty_output><jupyter_text>Fatalidades por fabricante de veiculo<jupyter_code>df = pd.DataFrame(df_fatalidade['aeronave_fabricante'].value_counts())
df['%'] = 100*df['aeronave_fabricante']/df_fatalidade['aeronave_fabricante'].shape[0]
df<jupyter_output><empty_output><jupyter_text>Fatalidades por tipo de operação<jupyter_code>df = pd.DataFrame(df_fatalidade['aeronave_tipo_operacao'].value_counts())
df['%'] = 100*df['aeronave_tipo_operacao']/df_fatalidade['aeronave_tipo_operacao'].shape[0]
df<jupyter_output><empty_output><jupyter_text>Fatalidades por ano de fabricação<jupyter_code>df = pd.DataFrame(df_fatalidade['aeronave_ano_fabricacao'].value_counts())
df['%'] = 100*df['aeronave_ano_fabricacao']/df_fatalidade['aeronave_ano_fabricacao'].shape[0]
df<jupyter_output><empty_output><jupyter_text>**Recomendação** - Informações sobre as recomendações de segurança geradas nas ocorrências.<jupyter_code># Contando as recomendações sem repetição
df=df_recomendacao
print("Existem no total {} ocorrências com informações sobre as recomendações de segurança que foram geradas.".format(df_recomendacao['codigo_ocorrencia4'].nunique()))
df = pd.DataFrame(df_recomendacao['recomendacao_status'].value_counts())
df['%'] = 100*df['recomendacao_status']/df_recomendacao['recomendacao_status'].shape[0]
df
#constroi o boxplot para as colunas desejadas verificando se existem outliers (anomalias) nos dados.
df_ocorrencia[['total_recomendacoes']].boxplot();
#analisando a quantidade de recomendações
df_ocorrencia.hist('total_recomendacoes', bins=35);  
# adiciona o título ao gráfico (histograma)
plt.title('Total de recomendações');
plt.xlabel('Quantidade de recomendações');<jupyter_output><empty_output><jupyter_text>**Fator Contribuinte** - Informações sobre os fatores contribuintes das ocorrências que tiveram investigações finalizadas.<jupyter_code># Contando ocorrências sem repetição
df=df_fator_contribuinte
print("Existem no total {} ocorrências que tiveram informações sobre os fatores contribuintes.".format(df_fator_contribuinte['codigo_ocorrencia3'].nunique()))

# Análise do fator contribuinte das ocorrências investigadas.
df = pd.DataFrame(df_fator_contribuinte['fator_nome'].value_counts())
df['%'] = 100*df['fator_nome']/df_fator_contribuinte['fator_nome'].shape[0]
df
#Análise do aspecto contribuinte das ocorrências investigadas.
df = pd.DataFrame(df_fator_contribuinte['fator_aspecto'].value_counts())
df['%'] = 100*df['fator_aspecto']/df_fator_contribuinte['fator_aspecto'].shape[0]
df
#Análise do fator condicionante das ocorrências investigadas.
df = pd.DataFrame(df_fator_contribuinte['fator_condicionante'].value_counts())
df['%'] = 100*df['fator_condicionante']/df_fator_contribuinte['fator_condicionante'].shape[0]
df
#Análise do fator da área.
df = pd.DataFrame(df_fator_contribuinte['fator_area'].value_counts())
df['%'] = 100*df['fator_area']/df_fator_contribuinte['fator_area'].shape[0]
df<jupyter_output><empty_output><jupyter_text>**Previsão de fatalidade**<jupyter_code>#concatenando as duas bases de dados
df_ocorrencia_aeronave=df_ocorrencia.merge(df_aeronave, on='codigo_ocorrencia2')
df_ocorrencia_aeronave.head()
#selecionando as colunas para previsão de fatalidade
df_previsao_fatalidade=df_ocorrencia_aeronave[["ocorrencia_classificacao","ocorrencia_cidade","ocorrencia_uf","ocorrencia_hora",
                                      "aeronave_tipo_veiculo","aeronave_motor_tipo","aeronave_motor_quantidade","aeronave_fatalidades_total"]]

df_previsao_fatalidade.to_csv('previsao_fatalidade.csv', index=False, sep=';',encoding='cp1252')

df_previsao_fatalidade.head()<jupyter_output><empty_output><jupyter_text>Teste<jupyter_code>import pandas as pd
import numpy as np
from sklearn.preprocessing import LabelEncoder

#Criar datarame
df_ocorrencia_aeronave = ("ocorrencia_classificacao","ocorrencia_cidade","ocorrencia_uf","ocorrencia_hora",
                "aeronave_tipo_veiculo","aeronave_motor_tipo","aeronave_motor_quantidade")

df =  pd.DataFrame(df_ocorrencia_aeronave, columns=['Teste'])

#criar instância de labelencoder
labelencoder = LabelEncoder()


#alinhando valores numéricos em outra coluna.
df['Teste'] = labelencoder.fit_transform(df['Teste'])
df<jupyter_output><empty_output><jupyter_text>Teste fatalidade contagem<jupyter_code>df_aeronave
#df_aeronave.loc[df_aeronave['aeronave_fatalidades_total']=="2"]

filtro  = df_aeronave['aeronave_fatalidades_total'] > 0

fatalidade = df_aeronave[filtro]

fatalidade.head()<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.12785640863445877, 'fraction_numerical': 0.009488416225191745, 'mean_word_length': 10.017421602787456, 'pattern_counts': {'":': 0, '<': 120, '<?xml version=': 0, '>': 122, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 1, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '30', 'dir': 'jupyter-structured-clean-dedup', 'id': '628101', 'license': 'MIT', 'n_tokens_mistral': 5251, 'n_tokens_neox': 5087, 'n_words': 633, 'path': 'CENIPA_Ocorrencias_ACB.ipynb', 'repo_name': 'wendelvilaca/python-code', 'size': '12647'}