Base de dados de crédito

i#clientid,income,age,loan,c#default
1,66155.9250950813,59.017015066929204,8106.53213128514,0
2,34415.1539658196,48.11715310486029,6564.745017677379,0
3,57317.1700630337,63.10804949188599,8020.953296386469,0

Colunas: Linha, id do cliente, salário, idade e empréstimo (atributos previstores) e default (atributo classe: se foi ou não capaz de pagar o empréstimo)

Importando o pandas

import pandas as pd
pd.set_option('display.max_rows', 500)
pd.set_option('display.max_columns', 500)
pd.set_option('display.width', 1000)

Aqui estamos importando a biblioteca do pandas e configurando para que possamos ver até 500 colunas, 500 linhas e 1000px de largura no nosso console.

Na IDE Spyder, selecione as das linhas e pressione CTRL+ ENTER para executar, no console, o código.

Carregando o CSV


base = pd.read_csv('credit_data.csv')

Na janela do file explorer, se mudarmos para o var explorer, veremos que a nossa variável base já está ali. Dando dois cliques na variável, podemos ver os dados.

<aside> 💡 O tipo da variável base é um DataFrame. Isto é, uma tabela de dados.

</aside>

Estatísticas do CSV

Com o comando .describe(), temos algumas estatísticas sobre o DataFrame carregado, geradas automaticamente pelo pandas.

base.describe()
Out[6]: 
        i#clientid        income          age          loan    c#default
count  2000.000000   2000.000000  1997.000000   2000.000000  2000.000000
mean   1000.500000  45331.600018    40.807559   4444.369695     0.141500
std     577.494589  14326.327119    13.624469   3045.410024     0.348624
min       1.000000  20014.489470   -52.423280      1.377630     0.000000
25%     500.750000  32796.459717    28.990415   1939.708847     0.000000
50%    1000.500000  45789.117313    41.317159   3974.719419     0.000000
75%    1500.250000  57791.281668    52.587040   6432.410625     0.000000
max    2000.000000  69995.685578    63.971796  13766.051239     1.000000

Tratando valores inconsistentes

Usando o .describe(), já podemos encontrar algumas inconsistências na nossa base de dados. Temos idades negativas, por exemplo, que devem ser tratadas.

Para localizar algo, temos o comando .loc[].

Procurando idades negativas

' Finding negative ages
base.loc[base['age'] < 0]