Importar datos CSV usando Pandas.READ_CSV ()
En este tutorial, aprenderá:
Importar CSV
Durante el tutorial de TensorFlow, utilizará el dataset adulto. A menudo se utiliza con la tarea 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 ocho variables categóricas:
- clase de trabajo
- educación
- conyugal
- ocupación
- relación
- raza
- sexo
- native_country
además, seis variables continuas:
- edad
- Fnlwgt
- núm_educación_de_educación
- capital_gain
- capital_loss
horas_semana
Para importar un dataset CSV, puede utilizar el objeto pd.read_csv (). El argumento básico dentro es:
Sintaxis:
1 |
pandas.read_csv(filepath_or_buffer,sep=', ',`names=None`,`index_col=None`,`skipinitialspace=False`) |
- filepath_or_buffer: Ruta o URL con los datos
- sep=’, ‘: Define el delimitador a usar
names=none
: Asigne un nombre a las columnas. Si el dataset tiene diez columnas, debe pasar diez nombresindex_col=none
: Si es así, la primera columna se utiliza como índice de filaskipInitialSpace=False
: omita espacios después del delimitador.
Para obtener más información sobre readcsv (), consulte la documentación oficial
https://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html.
Considere el siguiente ejemplo
1 2 3 4 5 6 7 8 9 10 11 12 |
## 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:
1 |
(32561, 15) |
Grupoby
Una forma fácil de ver los datos es usar 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 groupby:
- conteo: conteo
- min: min
- máx.: máx.
- media: media
- mediana: mediana
- desviación estándar: sdt
- etc
Dentro de groupby (), puede usar la columna que desea aplicar el método.
Echemos un vistazo a una sola agrupación con el conjunto de datos para adultos. Obtendrá la media de todas las variables continuas por tipo de ingresos, es decir, por encima de 50k o por debajo de 50k
1 |
df_train.groupby(['label']).mean() |
age | fnlwgt | education_num | capital_gain | capital_loss | hours_week | |
etiqueta | ||||||
<=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 |
Puede obtener la edad mínima por tipo de hogar
df_train.groupby ([‘label’]) [‘age’] .min ()
1 2 3 4 |
label <=50K 17 >50K 19 Name: age, dtype: int64 |
También puede agrupar por varias columnas. Por ejemplo, usted puede obtener la ganancia de capital máxima de acuerdo con el tipo de hogar y estado civil.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
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 |
Puede crear un trazado siguiendo groupby. Una forma de hacerlo es usar un trazado después de la agrupación.
Para crear un gráfico más excelente, usará unstack () después de mean () para que tenga 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 usa Jupyter Notebook, asegúrese de agregar%matplotlib en línea, de lo contrario, no se mostrará ninguna trama
1 2 3 4 |
%matplotlib inline df_plot = df_train.groupby(['label', 'marital'])['capital_gain'].mean().unstack() df_plot |

Leave a Reply
Want to join the discussion?Feel free to contribute!