<jupyter_start><jupyter_text>Titanic **Autor:** <NAME>**Descrição:**O desenvolviemnto de modelos analíticos precisa de dados bem estruturados e confiáveis para que possam servir de base para a tomada de decisão sobre as regras de negócio.**Objetivos:**Desenvolver um banco de dados analítico relacional para alimentar modelos e processo de analytics.**TO DO list [✔️]:**1. Importar dados ✔️2. Criar documentação dos campos3. EDA Quick Navigation*  Importar Dados<jupyter_code># Bibliotecas utilizadas para análise
import datetime
import re

import numpy as np
from openpyxl import Workbook, load_workbook
import matplotlib.pyplot as plt
import pandas as pd
from pprint import pprint 
import seaborn as sns

# Configurações do Pandas
pd.set_option("display.float_format", lambda x: "%.5f" % x)
pd.set_option('display.max_columns', 500)
pd.set_option('display.max_rows', 200)

# Ajustar tamanho do notebook ao tamanho da janela
from IPython.core.display import display, HTML

display(HTML("<style>.container { width:95% !important; } </style>"))

# Imprimir todos valores da célula, não somente o último
from IPython.core.interactiveshell import InteractiveShell

# transforma células de código em markdown
from IPython.display import Markdown as md

InteractiveShell.ast_node_interactivity = "all"<jupyter_output><empty_output><jupyter_text>*markdown***markdown**>markdown`code` ---1. lista2. lista* lista__[text link](https://www.coursera.org/in-progress)__| Variável| Definição | Chave || --- | --- | --- ||sobreviveu| 	Se sobreviveu |	0 = Não, 1 = Sim| hide        Exemplo  1. Importar Dados | Variável| Definição | Chave || --- | --- | --- ||sobreviveu| 	Se sobreviveu |	0 = Não, 1 = Sim||classe| Classe de passagem	| 	1 = Primeira, 2 = Segunda, 3 = Terceira||sexo| 	Sexo |	||idade| 	Idade em anos|||sibsp| 	Número de irmãos / cônjuges a bordo do Titanic |||parch| 	Número de pais / filhos a bordo do Titanic|||num_passagem| 	Número da passagem|||tarifa| 	Tarifa de passageiro|||cabine| 	Número da cabine|||local_embarque| 	Porto de embarcação| 	C = Cherbourg, Q = Queenstown, S = Southampton|* Notas das variáveis1. classe: proxy para status sócio-econômico2. idade: é decimal caso menor que 1 ano. Se é estimada, está na forma xx.53. o dataset define relações familiares:    * irmãos: irmão, irmã, meio-irmão, meia-irmã    * cônjuge = marido, esposa (amantes e noivos foram ignorados) 4. parch: O conjunto de dados define as relações familiares:    * Pai = mãe, pai    * Criança = filha, filho, enteada    * Algumas crianças viajavam apenas com a babá, portanto parch = 0 para elas.<jupyter_code># tabelas principais
df_submission_example = pd.read_csv('data/gender_submission.csv')
df_test = pd.read_csv('data/test.csv')
df_train= pd.read_csv('data/train.csv')
df_train.head(1)
df_test.head(1)
df_train.columns=[
    'id',
    'sobreviveu',
    'classe',
    'nome',
    'sexo',
    'idade',
    'sibsp',
    'parch',
    'num_passagem',
    'tarifa',
    'cabine',
    'local_embarque'
]

df_test.columns=[
    'id',
    'classe',
    'nome',
    'sexo',
    'idade',
    'sibsp',
    'parch',
    'num_passagem',
    'tarifa',
    'cabine',
    'local_embarque'
]
df_train.head()
df_test.head()<jupyter_output><empty_output><jupyter_text>2. Exploratory Data Analysis (EDA)<jupyter_code>df_train[['sobreviveu', 'classe']] = df_train[['sobreviveu', 'classe']].astype(str)
df_train[['sobreviveu', 'classe', 'sexo', 'local_embarque', 'cabine']].describe()
df_train[['idade', 'sibsp', 'parch', 'tarifa']].describe()
fig, axes = plt.subplots(2, 2, figsize=(9, 12))

axes[0, 0].set_title('Contagem de Sobreviventes')
sns.countplot(
    x='sobreviveu',
    data=df_train,
    palette='copper',   
    ax=axes[0, 0]
)

axes[0, 1].set_title('Contagem por classe')
sns.countplot(
    x='classe',
    data=df_train,
    palette='copper',   
    linewidth=2,
    ax=axes[0, 1]
)

axes[1, 0].set_title('Contagem por sexo')
sns.countplot(
    x='sexo',
    data=df_train,
    palette='copper',   
    linewidth=2,
    ax=axes[1, 0]
)

axes[1, 1].set_title('Contagem por local de embarque')
sns.countplot(
    x='local_embarque',
    data=df_train,
    palette='copper',   
    linewidth=2,
    ax=axes[1, 1]
)


df_plot = df_train.groupby(['sexo', 'sobreviveu']).size().reset_index().pivot(columns='sexo', index='sobreviveu', values=0)
df_plot.plot(
    kind='bar',
    stacked=True,
    colormap='copper'
    
)
plt.title('Sobrevientes por sexo')
plt.ylabel('count')

df_plot2 = df_train.groupby(['classe', 'sobreviveu']).size().reset_index().pivot(columns='classe', index='sobreviveu', values=0)
df_plot2.plot(
    kind='bar',
    stacked=True,
    colormap='copper'
    
)
plt.title('Sobrevientes por classe')
plt.ylabel('count')
#plt.tight_layout(pad=3)<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.14288702928870292, 'fraction_numerical': 0.012761506276150627, 'mean_word_length': 4.5528455284552845, 'pattern_counts': {'":': 0, '<': 16, '<?xml version=': 0, '>': 17, 'https://': 1, 'lorem ipsum': 0, 'www.': 1, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '3', 'dir': 'jupyter-structured-clean-dedup', 'id': '539835', 'license': 'MIT', 'n_tokens_mistral': 1923, 'n_tokens_neox': 1857, 'n_words': 427, 'path': 'titanic.ipynb', 'repo_name': 'olvbruno/ml-titanic', 'size': '4791'}