Está en la página 1de 41

INGENIERÍA ELECTRICA Y ELECTRÓNICA

APRENDIZAJE DE MAQUINA Y MINERIA DE


DATOS
CIB12
DATA SCIENCE. Introducción a la ciencia de datos.
Recolección y Preparación de Datos-7.
Docente: Dsc. Lupe Pizán Toscano

Dra.LupeNeridaPizanToscano 2
DATAFRAME, SERIES Y USO DE
PANDAS
RECOLECCIÓN DE
INFORMACIÓN
DE PÁGINAS WEB
LIMPIEZA DE DATOS

Dra.LupeNeridaPizanToscano 4
2.-Eliminando los valores faltantes.

➢Debemos eliminar los valores faltantes porque


el objetivo de la limpieza de datos es eliminar
todos los elementos que no nos sirvan.
➢Los elementos faltantes, pueden traer
problemas a la hora de modelar y tratar de
hacer predicciones.

Dra.LupeNeridaPizanToscano 5
2.-Eliminando los valores faltantes.
➢Pandas tiene la función "Drop NA"
➢"Drop NA" elimina los valores no numéricos,
es decir, todos los valores faltantes.
➢Lo ejecutamos y nos da cero filas(rows).
➢Para este conjunto de datos en específico hay
al menos un dato faltante por cada una de las
casas.
➢Entonces “Drop NA” elimina todas las casas y
va a quedar un conjunto de datos tamaño 0.
Dra.LupeNeridaPizanToscano 6
Dra.LupeNeridaPizanToscano 7
2.-Eliminando los valores faltantes.
➢Entonces, como se elimina toda la data al
intentar eliminar los “datos faltantes” tenemos
que resolver el problema.
➢Solución:
➢Determinar cuáles columnas tienen valores nulos,
➢Contaremos los valores nulos. Si hacemos la suma por
columnas encontramos para cada columna cuántos valores
le faltan.

Dra.LupeNeridaPizanToscano 8
Dra.LupeNeridaPizanToscano 9
Dra.LupeNeridaPizanToscano 10
2.-Eliminando los valores faltantes.

➢La función Pandas Series.isna () detecta


valores faltantes en el objeto de serie dado.
Devuelve un objeto booleano del mismo
tamaño que indica si los valores son NA.
➢ Los valores faltantes se asignan a
Verdadero y el valor que no falta se asigna a
Falso.
➢Entonces si usamos df.isna nos va a dar una
matriz con verdaderos y falsos.
Dra.LupeNeridaPizanToscano 11
Dra.LupeNeridaPizanToscano 12
2.-Eliminando los valores faltantes.
Usamos df.isna nos va a dar una matriz con
verdaderos y falsos.
➢df.isna().sum().sort_values(ascending = False)
➢le dice "para cada uno de los elementos que
faltan súmalos por columnas y ordénalos”
➢(columns_na[columns_na>0]/len(df))*100
➢Se saca el tanto por ciento y se imprime.

Dra.LupeNeridaPizanToscano 13
Dra.LupeNeridaPizanToscano 14
2.-Eliminando los valores faltantes.
➢En la columna PoolQC, el 99% de sus filas(
rows ) tiene un valor nulo o faltante, entonces
a partir de esa columna se ordenan todas las
demás.
➢Entonces, se eliminan todas las columnas que
están dando problemas que son todas las que
salen en la lista y se soluciona todo.

Dra.LupeNeridaPizanToscano 15
2.-Eliminando los valores faltantes.
➢Utilizaremos drop na,
➢Pero con eje igual a 1 (axis=1),
➢El valor de default es eje igual a 0, que es decir, va
a buscar a través de filas(rows)
➢axis=1 va a buscar a través de columnas.
➢No da sin ningún problema 1,460 rows (casas)
y 61 características.
➢Se elimino varias columnas y nos da nuestro
conjunto de datos.

Dra.LupeNeridaPizanToscano 16
Dra.LupeNeridaPizanToscano 17
LIMPIANDO DATOS CON PYTHON
➢Analizando lo que se elimino con
dropna(axis=1)
➢La columna PoolQC tenía 99% de datos
faltantes.
➢¿Qué es PoolQC? ¿qué es lo que se eliminó?
➢Revisemos data_description.
➢Buscamos “PoolQC” con cntrl+B,

Dra.LupeNeridaPizanToscano 18
Dra.LupeNeridaPizanToscano 19
Dra.LupeNeridaPizanToscano 20
LIMPIANDO DATOS CON PYTHON
➢Buscamos “PoolQC” con cntrl+B,
➢“Pool Quality”, la calidad de la piscina. Ex:
es excelente la calidad, Gd: si es buena la
calidad, TA: es promedio, Fa: es pasable o
decente y NA: no tiene piscina.
➢ Significa que estamos perdiendo un dato
importante al borrar esta información. Las
casas que sí tienen piscina están perdiendo un
valor agregado, por lo tanto, no podemos
eliminar esa columna.
Dra.LupeNeridaPizanToscano 21
LIMPIANDO DATOS CON PYTHON

➢La otra alternativa a eliminar la columna por la


ausencia de datos es rellenar los faltantes con
algún otro valor.
➢Tenemos PoolQC, la columna PoolQC, y
vamos a pedir "dame los valores únicos",

Dra.LupeNeridaPizanToscano 22
Dra.LupeNeridaPizanToscano 23
LIMPIANDO DATOS CON PYTHON
➢ Así conocemos los valores que contiene la columna
PoolQC.
➢ Nos muestra "Ex" que es "excelente", "FA" que es
"Fair" , "Gd" que es "Good” y "nan".
➢ no hubo ningún "TA”.
➢ Le daremos valores numéricos.
➢ Ex es un 4, Gd es 3, TA es 2, FA es 1 y los valores
nulos, que lo vamos a representar con np.nan, van a
ser ceros.
➢ Así se respeta y no se elimina toda la información de
la columna.
Dra.LupeNeridaPizanToscano 24
(PYTHON)

Dra.LupeNeridaPizanToscano 25
Función Lambda
➢ Lambda se refiere a una pequeña función anónima.
➢ Las llamamos “funciones anónimas” porque
técnicamente carecen de nombre.
➢ Al contrario que una función normal, no la definimos
con la palabra clave estándar def que utilizamos en
Python.
➢ En su lugar, las funciones Lambda se definen como
una línea que ejecuta una sola expresión.
➢ Este tipo de funciones pueden tomar cualquier
número de argumentos, pero solo pueden tener una
expresión.
Dra.LupeNeridaPizanToscano 26
Función Lambda
➢ #Se escribe a p1 y p2 como los parámetros 1 y 2 de la
función. lambda p1, p2: expresión
➢ Ejemplo:
#Aquí tenemos una función creada para sumar.
def suma(x,y):
return(x + y)
#Aquí tenemos una función Lambda que también suma.
lambda x,y : x + y
#Para poder utilizarla necesitamos guardarla en una
variable.
suma_dos = lambda x,y : x + y

Dra.LupeNeridaPizanToscano 27
La Función de Filtro en Python
➢ La función filter() integrada de Python puede usarse para crear un
nuevo iterador a partir de un iterable existente (como una lista o un
diccionario) que filtrará de forma eficiente los elementos usando una
función que proporcionamos.
➢ Un iterable es un objeto Python que puede “repetirse” es decir,
devolverá elementos en una secuencia de forma que podamos usarla
en un bucle.
➢ La sintaxis básica para la función filter() es:
filter(function, iterable)
➢ Filter con lambda
filter(lambda item: item[] expression, iterable)
creature_names = ['Sammy', 'Ashley', 'Jo', 'Olly', 'Jackie', 'Charlie']

Dra.LupeNeridaPizanToscano 28
➢ Para “filtrar”esta lista, encontrar los nombres de las criaturas del
acuario que comienzan con vocal:
filter(lambda x: x[0].lower() in 'aeiou', creature_names)

➢ Se declara un elemento en nuestra lista como x.


➢ Luego se establece la expresión para acceder al primer carácter de cada cadena
(o carácter “cero”, de forma que x[0].
➢ Se reduce la capitalización de cada nombre para garantizar que esto va
coincidir las letras con la cadena en nuestra expresión "aeiou".
➢ Pasamos el iterable creature_names.
➢ Se aplica list() al resultado para crear una lista desde el iterador
filter() que devuelve.
list(filter(lambda x: x[0].lower() in 'aeiou', creature_names))

print(list(filter(lambda x: x[0].lower() in 'aeiou', creature_names)))

Dra.LupeNeridaPizanToscano 29
Función map()
➢ La función map() toma una función y una lista y
aplica esa función a cada elemento de esa lista,
produciendo una nueva lista.
➢ La función map() se utiliza mucho junto a
expresiones lambda ya que permite evitar escribir
bucles for.
➢ Esta función trabaja de una forma muy similar a
filter()
➢ La diferencia es que en lugar de aplicar una condición
a un elemento de una lista o secuencia, aplica una
función sobre todos los elementos.

Dra.LupeNeridaPizanToscano 30
Función map()
>>> def doblar(numero):
return numero*2

>>> numeros = [2, 5, 10, 23, 50, 33]


>>> map(doblar, numeros)
[4, 10, 20, 46, 100, 66]

>>> map(lambda x: x*2, numeros)


[4, 10, 20, 46, 100, 66]

Dra.LupeNeridaPizanToscano 31
LIMPIANDO DATOS CON PYTHON

➢Utilizar la función map:


➢a la columna PoolQC le vamos a aplicar una
función de mapeo. El mapeo que se ha
construido.

Dra.LupeNeridaPizanToscano 32
Dra.LupeNeridaPizanToscano 33
LIMPIANDO DATOS CON PYTHON
➢Vamos a verificar el número de Nans en la
columna: Pediremos para la columna PoolQC
dame los elementos nulos y súmalos, y nos
debe de dar el valor de 0.
➢Si pedimos un “sample”, va tomar cinco
valores aleatorios y los imprime.

Dra.LupeNeridaPizanToscano 34
Dra.LupeNeridaPizanToscano 35
LIMPIANDO DATOS CON PYTHON

➢Se verifica que ya hay valores de cero.


➢El 99% de los datos eran nulos o NA y ahora
se tiene un valor de 0 en su lugar.
➢El cero es un valor agregado que le estamos
dando a la columna.

Dra.LupeNeridaPizanToscano 36
LIMPIANDO DATOS CON PYTHON

➢Verificando también podemos pedir cuales son


los valores únicos y nos debe dar: 0, 4, 1 y 3.

Dra.LupeNeridaPizanToscano 37
Dra.LupeNeridaPizanToscano 38
LIMPIANDO DATOS CON PYTHON

➢Los valores únicos ahora son 0, 4, 1 y 3.


➢Entonces así se puede decir que limpiamos
correctamente la columna PoolQC.

Dra.LupeNeridaPizanToscano 39
LIMPIANDO DATOS CON PYTHON

Finalmente,
como este pueden haber muchos otros casos
similares en la base de datos donde no se pueden
eliminar porque son necesarios y se debe tener
cuidado en verificar que se está eliminando.

Dra.LupeNeridaPizanToscano 40
INTRODUCCION A LA CIENCIA DE
LOS DATOS

También podría gustarte