Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa Próxima revisión Ambos lados, revisión siguiente | ||
clase:iabd:pia:1eval:tema05 [2022/01/23 16:37] admin [Tratamiento de datos inválidos] |
clase:iabd:pia:1eval:tema05 [2022/01/30 21:17] admin [Ejercicios] |
||
---|---|---|---|
Línea 189: | Línea 189: | ||
<sxh base> | <sxh base> | ||
| | ||
- | count | + | count |
- | mean | + | mean |
- | std 5.049022 | + | std 5.209273 |
min | min | ||
- | 25% 0.506000 | + | 25% 0.512000 |
- | 50% 1.000000 | + | 50% 1.750000 |
- | 75% 4.500000 | + | 75% 5.250000 |
max 18.000000 | max 18.000000 | ||
</ | </ | ||
+ | * Media de una columna | ||
- | * Correlación entre columnas | + | <sxh python> |
+ | df.precio.mean() | ||
+ | </ | ||
+ | |||
+ | <sxh base> | ||
+ | 157.42 | ||
+ | </ | ||
+ | |||
+ | * Desviación estándar de una columna | ||
+ | |||
+ | <sxh python> | ||
+ | df.precio.std() | ||
+ | </ | ||
+ | |||
+ | <sxh base> | ||
+ | |||
+ | * Suma de una columna | ||
+ | |||
+ | <sxh python> | ||
+ | df.precio.sum() | ||
+ | </ | ||
+ | |||
+ | <sxh base> | ||
+ | |||
+ | * Máximo de una columna | ||
+ | |||
+ | <sxh python> | ||
+ | df.precio.max() | ||
+ | </ | ||
+ | |||
+ | <sxh base> | ||
+ | |||
+ | * Mínimo de una columna | ||
+ | |||
+ | <sxh python> | ||
+ | df.precio.min() | ||
+ | </ | ||
+ | |||
+ | <sxh base> | ||
+ | |||
+ | * Correlación entre columnas | ||
<sxh python> | <sxh python> | ||
Línea 208: | Línea 249: | ||
<sxh base> | <sxh base> | ||
| | ||
- | capacidad | + | capacidad |
- | precio | + | precio |
</ | </ | ||
Línea 338: | Línea 379: | ||
</ | </ | ||
- | * Añadir una columna calculada | + | * Añadir una nueva columna calculada |
<sxh python> | <sxh python> | ||
Línea 352: | Línea 393: | ||
4 SSD | 4 SSD | ||
........... | ........... | ||
+ | </ | ||
+ | |||
+ | * Modificar una columna | ||
+ | |||
+ | <sxh python> | ||
+ | #Pasamos de euros a dolares | ||
+ | df.precio=df.precio*1.13 | ||
</ | </ | ||
Línea 388: | Línea 436: | ||
</ | </ | ||
- | ===== Tratamiento de datos inválidos ===== | + | ===== Datos inválidos ===== |
Vamos ahora a crear un DataFrame con datos inválidos. | Vamos ahora a crear un DataFrame con datos inválidos. | ||
<sxh python> | <sxh python> | ||
- | tipo=[None, ' | + | tipo=[None, ' |
+ | ' | ||
capacidad=[0.5, | capacidad=[0.5, | ||
precio=[101, | precio=[101, | ||
Línea 419: | Línea 468: | ||
</ | </ | ||
- | * De una columna , obtener la lista de filas que tiene el valor '' | + | * Borrar aquellas |
<sxh python> | <sxh python> | ||
- | df.capacidad.isna() | + | df=df.dropna() |
+ | df.isnull().sum() | ||
</ | </ | ||
<sxh base> | <sxh base> | ||
- | [False, True, False, True, False, False, False, False, False, False, | + | tipo 0 |
- | False, False, False, False, False, False, False, False, False, False, | + | capacidad |
- | False, False, False, False, False, False, False, False, False, False] | + | precio |
+ | dtype: int64 | ||
</ | </ | ||
- | |||
- | * De una columna , obtener la lista de filas que **NO** tiene el valor '' | ||
- | |||
- | <sxh python> | ||
- | df.capacidad.notna() | ||
- | </ | ||
- | |||
- | <sxh base> | ||
- | [True, False, True, False, True, True, True, True, True, True, | ||
- | True, True, True, True, True, True, True, True, True, True, | ||
- | True, True, True, True, True, True, True, True, True, True] | ||
- | </ | ||
- | |||
- | * Borrar una columna que tenga '' | ||
- | |||
- | <sxh python> | ||
- | new_df=df[(df.capacidad.notna())] | ||
- | </ | ||
- | |||
- | * Borrar más de una columna que tenga '' | ||
- | |||
- | <sxh python> | ||
- | df[(df.tipo.notna()) & (df.capacidad.notna()) & (df.precio.notna())] | ||
- | </ | ||
- | |||
- | |||
Línea 518: | Línea 543: | ||
{{ : | {{ : | ||
+ | ===== Ejercicios ===== | ||
- | ===== pandas_profiling | + | ==== Ejercicio 1.A ==== |
- | Genera | + | Crea un DataDrame |
- | <sxh python> | ||
- | from pandas_profiling import ProfileReport | ||
- | reporte = ProfileReport(df, | ||
- | reporte.to_file(" | ||
- | </ | ||
- | Se puede ver el resultado en [[http:// | + | * Grábalo a disco y mira el fichero resultante. |
+ | * Ahora prueba a cargarlo | ||
+ | * Grábalo a disco con otro nombre pero ahora sin el parámetro '' | ||
+ | * Ahora prueba a cargarlo | ||
+ | * Muestra el nombre de las columnas y los tipos de datos de cada una de ellas. | ||
+ | * Imprime por pantalla "El nº de número de características es: NNNNN y el número de muestras es: NNNNNN" | ||
+ | * Imprime por pantalla las primeras filas | ||
+ | * Imprime por pantalla las últimas filas | ||
+ | * ¿Cuando ocupa en memoria el DataFrame? | ||
- | [[http://logongas.es/ | + | ==== Ejercicio 1.B ==== |
+ | Siguiendo con el DataFrame anterior imprime por pantalla: | ||
+ | |||
+ | * El tamaño medio del ancho del pétalo | ||
+ | * La desviación del ancho del pétalo | ||
+ | * El máximo ancho del pétalo | ||
+ | * El mínimo ancho del pétalo | ||
+ | |||
+ | ==== Ejercicio 1.C ==== | ||
+ | Siguiendo con el DataFrame anterior: | ||
+ | |||
+ | * Imprime por pantalla el nombre de las columnas como un array | ||
+ | * Imprime por pantalla el nombre de la primera columna | ||
+ | * Imprime por pantalla el número de columnas que hay. | ||
+ | * Cambia el nombre de la columna " | ||
+ | * Mueve la columna " | ||
+ | * Inserta una nueva columna que sea el área del pétalo. Deberás insertarla antes de la última columna. | ||
+ | * Inserta una nueva columna que sea el área del sépalo. Deberás insertarla antes de la última columna. | ||
+ | |||
+ | |||
+ | ==== Ejercicio 1.D ==== | ||
+ | Siguiendo con el DataFrame anterior imprime por pantalla: | ||
+ | |||
+ | * El ancho del pétalo de las flores de tipo " | ||
+ | * El ancho del sépalo de las flores de tipo " | ||
+ | * Indica los tipos de flores que hay. | ||
+ | * Indica cuantos valores de la columna " | ||
+ | * Indicar cuantos valores del DataFrame son " | ||
+ | * ¿Como se borrarían aquellas filas que tienen algún datos que es null? | ||
+ | |||
+ | ==== Ejercicio 1.E ==== | ||
+ | Siguiendo con el DataFrame anterior y usando | ||
+ | * Muestra un scatter plot del ancho del pétalo en el eje X y el ancho del sépalo en el eje Y según el tipo de flor. | ||
+ | * Muestra el gráfico KDE de la distribución del largo del pétalo y del largo del sépalo. | ||
+ | * Muestra el gráfico KDE de la distribución del largo del pétalo y del largo del sépalo pero separado por el tipo de flor. | ||
+ | * Muestra un // | ||
+ | |||
+ | ==== Ejercicio 2.E ==== | ||
- | <note tip>Una herramienta similar pero mucho mas potente es [[https:// | ||
- | </ | ||
- | Mas información: | ||
- | * [[https:// | ||
- | * [[https:// |