# -*- coding: utf-8 -*-
"""Estatistica.ipynb

Automatically generated by Colaboratory.

Original file is located at
    https://colab.research.google.com/drive/1Yyii4vHSLx8QDYboQPnqediKlIOrw2Ry

### Importação de bibliotecas
"""

import numpy as np
import seaborn as sns
import scipy as spy
import pandas as pd

"""## Carregando os dados através do pandas."""

dados = pd.read_csv('dados.csv')

"""## Visualizando o início"""

dados.head()

"""### Distribuição do frame

Distribuição do sexo
"""

quantidade_sexo = dados['Sexo'].value_counts()

percentual_sexo = dados['Sexo'].value_counts(normalize = True) * 100

tabela = pd.DataFrame({'Quantidade por sexo' : quantidade_sexo, 'Percentual' : percentual_sexo})

tabela.rename(index = {0 : 'Masculino', 1 : 'Feminino'}, inplace = True)

tabela.rename_axis('Sexo',axis = 'columns', inplace=True)

tabela

"""Distribuição de renda"""

labels = ['E', 'D', 'C', 'B', 'A']
classes = [0, 1576, 3152, 7880, 15760, 200000]

#Contagem da frequência por classe
frequencia_renda = pd.value_counts(
       pd.cut(dados.Renda,
       bins = classes,
       labels = labels,
       include_lowest = True
       )
)
#Calculo percentual de cada classe
percentual_renda = pd.value_counts(
       pd.cut(dados.Renda,
       bins = classes,
       labels = labels,
       include_lowest = True
       ), 
       normalize = True
) * 100

#Criando o dataframe para servir de tabela para a análise
tabela_renda = pd.DataFrame({'Frequência por classe' : frequencia_renda, 'Percentual por classe' : percentual_renda })
tabela_renda.sort_index(ascending=False, inplace= True)
tabela_renda.rename_axis('Classe', axis = 'columns')

tabela_renda['Frequência por classe'].plot.bar(width= 1, color = 'red', alpha = 0.2, figsize = (12, 6))

"""Descobrindo o valor ideal de classes"""

tamanho_dos_dados = dados.shape[0]
valor_ideal = 1 + ((10 / 3) * np.log10(tamanho_dos_dados))
valor_ideal = int(valor_ideal.round(0))

"""Agora iremos recriar o dataframe com as novas classes de renda."""

#Contagem da frequência por classe
frequencia_renda_ideal = pd.value_counts(
       pd.cut(dados.Renda,
       bins = 20,
       include_lowest = True,
       ),
       sort = False
)
#Calculo percentual de cada classe
percentual_renda_ideal = pd.value_counts(
       pd.cut(dados.Renda,
       bins = 20,
       include_lowest = True
       ), 
       normalize = True,
       sort = False
) * 100

tabela_renda_ideal = pd.DataFrame({'Frequência por classe':frequencia_renda_ideal, 'Percentual por classe' : percentual_renda_ideal})
tabela_renda_ideal.rename_axis('Classe', axis = 'columns')