Pandas read_csv() com exemplo

Importar CSV no Pandas

Durante o tutorial do TensorFlow, vocรช usarรก o conjunto de dados adulto. ร‰ frequentemente usado com tarefas de classificaรงรฃo. Estรก disponรญvel neste URL https://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.data

Os dados sรฃo armazenados em formato CSV. Este conjunto de dados inclui oito variรกveis โ€‹โ€‹โ€‹โ€‹categรณricas:

Este conjunto de dados inclui 8 variรกveis โ€‹โ€‹categรณricas:

  • classe de trabalho
  • educaรงรฃo
  • marital
  • ocupaรงรฃo
  • relacionamento
  • raรงa
  • sexo
  • paรญs nativo

E, 6 variรกveis โ€‹โ€‹contรญnuas:

  • idade
  • fnlwgt
  • nรบmero_educaรงรฃo
  • Ganho de capital
  • perda_capital
  • horas_semana

Mรฉtodo read_csv() do Pandas

Para importar um conjunto de dados CSV, vocรช pode usar o objeto pd.read_csv(). O argumento bรกsico interno รฉ:

Sintaxe read_csv() do Pandas

pandas.read_csv(filepath_or_buffer,sep=', ',`names=None`,`index_col=None`,`skipinitialspace=False`)
  • caminho_do_arquivo_ou_buffer: Caminho ou URL com os dados
  • setembro=', ': Defina o delimitador a ser usado
  • `nomes=Nenhum`: Nomeie as colunas. Se o conjunto de dados tiver dez colunas, vocรช precisarรก passar dez nomes
  • `index_col=Nenhum`: Se sim, a primeira coluna รฉ usada como รญndice de linha
  • `skipinitialspace=Falso`: Pule espaรงos apรณs o delimitador.

Para mais informaรงรตes sobre read_csv(), verifique a documentaรงรฃo oficial:

https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_csv.html

Exemplo de read_csv() do Pandas

## Import csv
import pandas as pd
## Define path data
COLUMNS = ['age','workclass', 'fnlwgt', 'education', 'education_num', 'marital',
           'occupation', 'relationship', 'race', 'sex', 'capital_gain', 'capital_loss',
           'hours_week', 'native_country', 'label']
PATH = "https://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.data"
df_train = pd.read_csv(PATH,
                       skipinitialspace=True,
                       names = COLUMNS,
                       index_col=False)
df_train.shape

Saรญda:

(32561, 15)

Mรฉtodo groupby() do Pandas

Uma maneira fรกcil de ver os dados รฉ usar o mรฉtodo groupby. Este mรฉtodo pode ajudรก-lo a resumir os dados por grupo. Abaixo estรก uma lista de mรฉtodos disponรญveis com o mรฉtodo groupby():

  • contar: contar
  • min: min
  • mรกximo: mรกximo
  • significar: significar
  • mediana: mediana
  • desvio padrรฃo: sdt
  • etc.

Dentro de groupby(), vocรช pode usar a coluna na qual deseja aplicar o mรฉtodo.

Vamos dar uma olhada em um รบnico agrupamento com o conjunto de dados adulto. Vocรช obterรก a mรฉdia de todas as variรกveis โ€‹โ€‹contรญnuas por tipo de receita, ou seja, acima de 50 mil ou abaixo de 50 mil:

df_train.groupby(['label']).mean()
rรณtulo idade fnlwgt nรบmero_educaรงรฃo Ganho de capital perda_capital horas_semana
<= 50K 36.783738 190340.86517 9.595065 148.752468 53.142921 38.840210
> 50K 44.249841 188005.00000 11.611657 4006.142456 195.001530 45.473026

Vocรช pode obter a idade mรญnima por tipo de domicรญlio:

df_train.groupby(['label'])['age'].min()
label
<=50K    17
>50K     19
Name: age, dtype: int64

Vocรช tambรฉm pode agrupar por mรบltiplas colunas. Por exemplo, vocรช pode obter o ganho mรกximo de capital de acordo com o tipo de domicรญlio e o estado civil.

df_train.groupby(['label', 'marital'])['capital_gain'].max()				
label  marital              
<=50K  Divorced                 34095
       Married-AF-spouse         2653
       Married-civ-spouse       41310
       Married-spouse-absent     6849
       Never-married            34095
       Separated                 7443
       Widowed                   6849
>50K   Divorced                 99999
       Married-AF-spouse         7298
       Married-civ-spouse       99999
       Married-spouse-absent    99999
       Never-married            99999
       Separated                99999
       Widowed                  99999
Name: capital_gain, dtype: int64

Vocรช pode criar um grรกfico seguindo groupby. Uma maneira de fazer isso รฉ usar um grรกfico apรณs o agrupamento.

Para criar um grรกfico mais excelente, vocรช usarรก unstack() depois de mean() para que tenha o mesmo รญndice multinรญvel, ou junte os valores por receita menor que 50k e acima de 50k. Neste caso, a parcela terรก dois grupos em vez de 14 (2*7).

Se vocรช usar Jupyter Portรกtil, certifique-se de adicionar %matplotlib inline, caso contrรกrio, nenhum grรกfico serรก exibido

%matplotlib inline
df_plot = df_train.groupby(['label', 'marital'])['capital_gain'].mean().unstack()
df_plot

Exemplo de mรฉtodo groupby() do Pandas

Resumo

  • Para importar um conjunto de dados CSV em Pandas, vocรช pode usar o objeto pd.read_csv().
  • O mรฉtodo groupby() pode ajudรก-lo a resumir os dados por grupo.
  • Vocรช tambรฉm pode agrupar por mรบltiplas colunas. Por exemplo, vocรช pode obter o ganho mรกximo de capital de acordo com o tipo de domicรญlio e o estado civil.

Resuma esta postagem com: