En este tutorial, aprenderá:
- Importar CSV
- Agrupar por
Importar CSV
Durante el tutorial de TensorFlow, usará el conjunto de datos para adultos. A menudo se usa 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
- marital
- ocupación
- relación
- raza
- sexo
- patria
además, seis variables continuas:
- edad
- fnlwgt
- número_educación
- ganancia capital
- perdida de capital
hours_week
Para importar un conjunto de datos CSV, puede utilizar el objeto pd.read_csv (). El argumento básico en el interior es:
Sintaxis:
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 que se utilizará
- `names = None`: Nombra las columnas. Si el conjunto de datos tiene diez columnas, debe pasar diez nombres
- `index_col = None`: Si es así, la primera columna se usa como índice de fila
- `skipinitialspace = False`: Omitir 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
## Import csvimport pandas as pd## Define path dataCOLUMNS = ['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
Producción:
(32561, 15)
Agrupar por
Una forma sencilla de ver los datos es utilizar el método groupby. Este método puede ayudarlo a resumir los datos por grupo. A continuación se muestra una lista de métodos disponibles con groupby:
- contar: contar
- min: min
- max: max
- significar: significar
- mediana: mediana
- desviación estándar: sdt
- etc
Dentro de groupby (), puede usar la columna a la que desea aplicar el método.
Echemos un vistazo a una sola agrupación con el conjunto de datos de adultos. Obtendrá la media de todas las variables continuas por tipo de ingresos, es decir, por encima de 50k o por debajo de 50k
df_train.groupby(['label']).mean()
edad | fnlwgt | número_educación | ganancia capital | perdida de capital | hours_week | |
etiqueta | ||||||
<= 50 K | 36.783738 | 190340.86517 | 9.595065 | 148.752468 | 53.142921 | 38.840210 |
> 50 K | 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 (['etiqueta']) ['edad']. min ()
label<=50K 17>50K 19Name: 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 34095Married-AF-spouse 2653Married-civ-spouse 41310Married-spouse-absent 6849Never-married 34095Separated 7443Widowed 6849>50K Divorced 99999Married-AF-spouse 7298Married-civ-spouse 99999Married-spouse-absent 99999Never-married 99999Separated 99999Widowed 99999Name: capital_gain, dtype: int64
Puede crear una trama siguiendo groupby. 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 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á ningún gráfico
%matplotlib inlinedf_plot = df_train.groupby(['label', 'marital'])['capital_gain'].mean().unstack()df_plot