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.