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
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.

