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