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.