Pandas read_csv() con ejemplo

Importar CSV en Pandas

Durante el tutorial de TensorFlow, utilizará el conjunto de datos para adultos. A menudo se utiliza con tareas de clasificación. Está disponible en esta URL. https://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.data

Los datos se almacenan en formato CSV. Este conjunto de datos incluye ocho variables categóricas:

Este conjunto de datos incluye 8 variables categóricas:

  • clase de trabajo
  • educación
  • marital
  • Ocupación.
  • relación
  • raza
  • vie
  • patria

Y 6 variables continuas:

  • edad
  • fnlwgt
  • núm_educación
  • ganancia capital
  • perdida de capital
  • horas_semana

Método pandas read_csv()

Para importar un conjunto de datos CSV, puede utilizar el objeto pd.read_csv(). El argumento básico dentro es:

Sintaxis de pandas read_csv()

pandas.read_csv(filepath_or_buffer,sep=', ',`names=None`,`index_col=None`,`skipinitialspace=False`)
  • ruta_de_archivo_o_buffer: Ruta o URL con los datos
  • septiembre=’,’: Defina el delimitador a utilizar
  • `nombres=Ninguno`: Nombra las columnas. Si el conjunto de datos tiene diez columnas, debe pasar diez nombres
  • `index_col=Ninguno`: En caso afirmativo, la primera columna se utiliza como índice de fila.
  • `skipinitialspace=Falso`: salta espacios después del delimitador.

Para obtener más información sobre read_csv(), consulte la documentación oficial:

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

Pandas read_csv() Ejemplo

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

Salida:

(32561, 15)

Método Pandas groupby()

Una forma sencilla de ver los datos es utilizar el método groupby. Este método puede ayudarle a resumir los datos por grupo. A continuación se muestra una lista de métodos disponibles con el método groupby():

  • contar: contar
  • mín: mín.
  • máx: máximo
  • significar: significar
  • mediana: mediana
  • desviación estándar: sdt
  • etc.

Dentro de groupby(), puedes usar la columna en la que deseas aplicar el método.

Echemos un vistazo a un único grupo con el conjunto de datos de adultos. Obtendrá la media de todas las variables continuas por tipo de ingreso, es decir, por encima de 50k o por debajo de 50k:

df_train.groupby(['label']).mean()
Etiqueta edad fnlwgt núm_educación ganancia capital perdida de capital horas_semana
<= 50 K 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

Puedes obtener la edad mínima por tipo de hogar:

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

También puede agrupar por varias columnas. Por ejemplo, puede obtener la máxima ganancia de capital según el tipo de hogar y el 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

Puedes crear un gráfico después de la agrupación. Una forma de hacerlo es utilizar un gráfico después de la agrupación.

Para crear un gráfico más excelente, usará unstack() después de mean() para tener el mismo índice multinivel, o unirá los valores por ingresos inferiores a 50k y superiores a 50k. En este caso, la trama tendrá dos grupos en lugar de 14 (2*7).

Si utiliza Jupyter Notebook, asegúrese de agregar %matplotlib en línea, de lo contrario, no se mostrará ningún gráfico

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

Ejemplo del método Pandas groupby()

Resum

  • Para importar un conjunto de datos CSV en pandas, puedes usar el objeto pd.read_csv().
  • El método groupby() puede ayudarle a resumir los datos por grupo.
  • También puede agrupar por varias columnas. Por ejemplo, puede obtener la máxima ganancia de capital según el tipo de hogar y el estado civil.