<jupyter_start><jupyter_text>Desafio 2 - Conhecendo melhor nossa base de consumidores  **Qual estado possui os clientes com melhores pontuações de crédito?**  Detalhes A resposta deve conter os valores da média, mediana, moda e desvio padrão da pontuação de crédito para cada estado do dataset. O arquivo para submissão deve estar em formato json, conforme o arquivo exemplo “submission.json”.OBSERVAÇÃO: É recomendado utilizar Python e pandas para esse desafio, mas também é possível utilizar outras ferramentas e linguagens de programação.Descrição dos dados: ‘id’: Identificador do cliente ‘sobrenome’: Sobrenome do cliente ‘pontuacao_credito’: Pontuação de crédito do cliente (quanto maior, melhor o cliente geralmente) ‘estado_residencia’: Estado de residência do cliente ‘genero’: Gênero do cliente ‘nivel_estabilidade’: Nível de estabilidade do cliente ‘saldo_conta’: Saldo disponível na conta do cliente ‘numero_produtos’: Número de produtos que o cliente consome ‘possui_cartao_de_credito’: Possui um cartão de crédito cadastrado ‘membro_ativo’: Membro acessa e consome frequentementeObs: Os dados são fictícios, mas tentam representar a realidade de uma base de clientes de um produto SaaS.  Objetivo Queremos conhecer melhor nossos clientes por estado. Para isso, iniciamos uma análise na pontuação de crédito. Para realizar a verificação inicial, precisamos de alguns valores. Os que precisamos encontrar derivados da pontuação de crédito são:- média;- mediana; - moda;- desvio padrão.  Importando as bibliotecas<jupyter_code>import pandas as pd<jupyter_output><empty_output><jupyter_text>Importando o dataset<jupyter_code>df = pd.read_csv('desafio1.csv')<jupyter_output><empty_output><jupyter_text>Exploração de dados<jupyter_code>df.head()
df.columns
df.shape
df.info()<jupyter_output><class 'pandas.core.frame.DataFrame'>
RangeIndex: 7000 entries, 0 to 6999
Data columns (total 12 columns):
 #   Column                    Non-Null Count  Dtype  
---  ------                    --------------  -----  
 0   RowNumber                 7000 non-null   int64  
 1   id                        7000 non-null   object 
 2   sobrenome                 7000 non-null   object 
 3   pontuacao_credito         7000 non-null   int64  
 4   estado_residencia         7000 non-null   object 
 5   genero                    7000 non-null   object 
 6   idade                     7000 non-null   int64  
 7   nivel_estabilidade        7000 non-null   int64  
 8   saldo_conta               7000 non-null   float64
 9   numero_produtos           7000 non-null   int64  
 10  possui_cartao_de_credito  7000 non-null   int64  
 11  membro_ativo              7000 non-null   int64  
dtypes: float64(1), int64(7), object(4)
memory usage: 656.4+ KB<jupyter_text>Análise Exploratória<jupyter_code>df.describe()
df['estado_residencia'].nunique()
df['estado_residencia'].value_counts()<jupyter_output><empty_output><jupyter_text>Média<jupyter_code>media = df.groupby('estado_residencia')['pontuacao_credito'].mean()
media<jupyter_output><empty_output><jupyter_text>Mediana<jupyter_code>mediana = df.groupby('estado_residencia')['pontuacao_credito'].median().sort_values( ascending=False)
mediana<jupyter_output><empty_output><jupyter_text>Moda<jupyter_code># Moda
moda = df.groupby('estado_residencia')['pontuacao_credito'].agg(pd.Series.mode)
moda<jupyter_output><empty_output><jupyter_text>Desvio padrão<jupyter_code>desvio_padrao = df.groupby('estado_residencia')['pontuacao_credito'].std()
desvio_padrao<jupyter_output><empty_output><jupyter_text>Submissão<jupyter_code>submission = {
    state: {
        'media': media[state],
        'mediana': mediana[state],
        'moda': moda[state],
        'desvio_padrao': desvio_padrao[state]
    } for state in mediana.index
}
submission
submission = pd.DataFrame(submission)
submission
submission.to_json('submission.json',orient='columns')
resp = pd.read_json('submission.json')
resp<jupyter_output><empty_output>
StarcoderdataJupyterStructuredCleanDedup