Big Data y Mineria de Datos
Big Data y Mineria de Datos
Big Data y Mineria de Datos
MINERIA DE
DATOS
Profesor: Oscar Martínez
Big Data y Minería
de Datos con
Python
1. Introducción a Big Data
2. Programar con Python;
condicionales. ciclos (While y For),
Vectores.
3. Estructura de datos.
4. Invocación de librerías para limpieza
y de datos, creación y
transformación de DataFrames,
filtrado y la función install
(packages); Math, Pandas, Numpy,
DateTime, Random, yFinance,
DataReader, etc.
5. Importación de librerías para
visualización de datos y elaboración
de informes; Matplotlib, Seaborn y
MarkDown.
6. Aprendizaje automático (Machine
Learning) con Scikit Learn.
TEXTOS RECOMENDADOS
1. Caballero, Rafael. et al. (2019). “Big Data con Python; Recolección, almacenamiento y
proceso”. Ed. Alpha Editorial.
www.kaggle.com
BIG DATA Y PYTHON
• ¿Por qué Big Data con Python?
Real Clean
World Data
Outcome
Contextualización, modelado,
Visualización de datos, informes.
BIG DATA Y PYTHON
Se trabajan las que almacenan texto (str), las que almacenan números (enteros y
reales) y las lógicas. Los números enteros son llamados int, los números reales o
decimales, son llamados float, y las que almacenan texto son tipo strings (str), las
cuales se debe almacenar entre comillas, dobles o sencillas.
Programar con Python; condicionales,
ciclos While y For), vectores.
2. Declaración de variables: se asigna el valor o dato a guardar o almacenar en el
siguiente espacio de memoria (X = 2). A modo práctico se abre Google Colab y
para asignarle 2 a la variable X.
Se almacena el dato dentro de la variable.
2 En este espacio de memoria recibe un número
entero. Lo mismo pasa con los números reales y
Los tipo texto.
“Hola a
2,5 todos”
Programar con Python; condicionales,
ciclos While y For), vectores.
(bool)
(str)
Programar con Python; condicionales,
ciclos While y For), vectores.
Elaboración del código: Se elaboran las sentencias en el lenguaje de
programación de Python, por ejemplo, la suma de dos número enteros
(X y Y) en Colab.
Programar con Python; condicionales,
ciclos While y For), vectores.
Programar con Python; condicionales,
ciclos While y For), vectores.
• En el editor del IDLE (o desde Google Función Phyton Significado
Colaboratory), se pueden programar diversas |X| abs(x) Valor absoluto de X
operaciones matemáticas, incluso aquellas ab pow(a,b) Potenciación
especializadas como funciones trigonométricas, Cociente de a/b Arroja el cociente entero de
a/b a sobre b
logarítmicas, raíces y potenciación, disponibles
Residuo de a%b Arroja el residuo de a sobre
en bibliotecas que deben ser cargadas o a/b b
importadas antes de usarse, p.e.
import math as mt a/b divmod(a,b) Obtiene el cociente y el
residuo de a/b
y = mt.sqrt(2) √x sqrt(x) Devuelve la raíz cuadrada
print(y) de x
Programar con Python; condicionales,
ciclos While y For), vectores.
• Entrada de datos: para la entrada de datos se utiliza la instrucción input, de la siguiente manera:
Salto de renglón
Campo que indica que al final existe una variable real (float) que se imprimirá con
dos decimales. El campo f es el especificador de formato (decimal de punto
flotante) y 2 es el número de decimales a la derecha.
Programar con Python; condicionales,
ciclos While y For), vectores.
• Concatenación: consiste en unir dos o más cadenas para conformar
una cadena mayor, utilizado el operador de concatenación +, por
ejemplo en el editor de IDLE:
mensaje = “buenas noches”
espacio = “ “
Concatenar variables de nombre = “curso de Phyton”
caracteres.
print(mensaje + espacio + nombre)
Programar con Python; condicionales,
ciclos While y For), vectores.
• Convertir un número en una variable de texto, teniendo en cuenta
que no se puede concatenar una variable tipo entero de una de texto
(string).
Programar con Python; condicionales,
ciclos While y For), vectores.
• Ejemplo: se desea un programa en Python que calcule el interés simple y
el compuesto de un capital que ganará un rendimiento dado a una tasa de
interés X y en un periodo de tiempo de n meses. Las fórmulas son:
a. Condición simple.
b. Condición si_sino.
c. Condición anidada.
Condición simple.
If (expresión lógica):
instrucciones….
Condición si_sino.
If (expresión lógica):
instrucciones 1
elif (expresión lógica):
Condicionales instrucciones 2
Condición anidada.
If (expresión lógica A):
instrucciones A.
else:
If (expresión lógica B):
instrucciones B
Condicionales Operador Definición Ejemplo
== Igual a X=5
!= Distinto a X! = 5
EJERCICIO EN CLASE
a.x + b = 0
• Pasos: Lee el compuesto químico que se ingresa y de acuerdo con la condición se muestra el nombre del
compuesto químico. Se despliega el compuesto químico con la opción print.
EJERCICIO 2
EJERCICIOS
1. Elabore un algoritmo donde un consumidor financiero ingrese una cantidad de dinero que desea invertir.
Si este usuario ingresa una cantidad menor o igual a $1.000.000, entonces recibirá el 3 % EA, sino, si
ingresa una cantidad superior a $1.000.000, entonces recibirá el 4 % EA. La inversión es pagadera al final
del primer año.
2. Existen 3 opciones en una decisión de inversión. En la primera opción, si deposita 7 millones de pesos
recibirá al final del primer año el 10 % EA, si deposita entre 7 y 10 millones de pesos al final recibirá 11 %
EA, y si deposita más de 10 millones de pesos se le pagará al final del primer año 12 % EA. Elabore un
algoritmo para determinar el valor futuro de una inversión con interés compuesto.
CICLOS (WHILE)
• Por ejemplo, un programa que me calcule la suma de los números del 1 hasta n. El usuario
ingresa el valor de n.
instrucciones
CICLOS (FOR)
CARACTERÍSTICAS:
# Inicia la suma
Sum = 0
lista = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
for contador in lista
sum = sum + contador
print(“la suma de los números enteros del 1 al 10, es:\n”, sum)
CICLOS (FOR)
CICLOS (FOR)
import math as mt Visualización f(x):
range (a, b, c)
CICLOS (FOR) último número que es 11. Por ejemplo, se estructura así:
# Inicia la suma
Sum = 0
for contador in range(1,11,1)
sum = sum + contador
print(“la suma de los números enteros del 1 al 10, es:\n”,
sum)
CICLOS
(FOR)
CICLOS (FOR)
y = [1 , 2, 3], un conjunto de
listas, se suman o concatenan, y
se duplican, así:
ESTRUCTURA
DE DATOS
• La concatenación (unión) de una
lista se utiliza el signo +.
• Longitud de una lista con la
instrucción len.
• Porción de lista A[1:n]
• Mutabilidad de listas A[i], consiste
en cambiar uno o más elementos
de una lista, así:
ESTRUCTURA DE DATOS
Instrucciones adicionales a las anteriores:
1 “”.join(lista) Unir elementos o caracteres que se encuentran en la lista.
2 max(lista) Regresa el valor máximo de una lista.
3 min(lista) Regresa el valor mínimo de una lista.
4 tuple(lista) Convierte una lista a tupla.
5 lista.append(obj) Agregar un elemento a una lista
6 lista.pop() Regresa y borra el último elemento de la lista.
7 lista.pop(i) Regresa y borra el elemento i de la lista.
8 lista.reverse() Invierte el orden de los elementos de la lista.
A = {“clave1”:valor1, “clave2”:valor2,
“clave3”:valor3,…., “claveM”:valorM}
Instrucción Descripción
df1 = df0[['columnY’, 'columnX’] ] # crear nuevo DataFrame (cambiando orden de columnas).
df1['columnX'].columns # indica nombre etiqueta de la columna según df1['columna’]
df1['columnX'].head() # muestra el encabezado del DataFrame.
new_data= df1 [['column_n', 'column_1 ', ' column_2']] ) # Nuevo DataFrame con otro orden de columnas (new_data).
new_data= newdata.assign(column_1=0, #crea o agrega nuevas columnas al DataFrame new_data
column_2=0,………., column_n=0)
new_data[' column_n']=new_df['columnX'].shift(1) # crea columna de rezago en 'column_n'.
new_data[' column_1']=df1['columnX']. pct_change(1) # crea columna tasa de crecimiento.
df['columna j'].loc[‘15'] # buscar el dato de la columna j en la fecha i (periodo) solicitada.
TRANFORMACIÓN DE DATOS BAJO PYTHON Y
CREACIÓN DE DATAFRAMES
• Instrucciones para tener en cuenta, al momento de importar el archivo Ejercicio.xlsx, crear nuevos
DataFrames y transformarlos.
Instrucción Descripción
df1.describe() # instrucción para visualizar la tabla de información
descriptiva.
df1 = df1.sort_values('Sales',ascending=False,ignore_index=False) # ordena de mayor a menor sin tener en cuenta la
columna índice.
df1=df1.sort_values('Sales',ascending=False,ignore_index=False). # reordena la columna index, de acuerdo con la columna
reset_index(drop=True) ‘Sales’.
datos = df1.values # convierte la columna df1 en un array llamado datos.
x = datos[:,0] # almacena en la variable X todos los datos de la
columna ‘Price’ del array.
y = datos[:,1] # almacena en la variable Y todos los datos de la
columna ‘Sales’ del array.
TRANFORMACIÓN DE DATOS BAJO PYTHON Y
CREACIÓN DE DATAFRAMES
• Instrucciones para tener en cuenta, al momento de importar el archivo Ejercicio.xlsx, crear nuevos
DataFrames y transformarlos.
Instrucción Descripción
df1[‘X'].nunique() # indica el número de especificaciones de la columna X.
df1.loc[X', 'Periodo'] # buscar el dato de la columna ‘X', en el periodo solicitado i.
df0.iloc[-1] # busca los datos de la última fila, columnas X y Y.
df0.iloc[1:3] # muestra solamente las filas del 1 al 3.
type(df1['Sales']) # arroja el tipo de los datos de la columna.
np.linspace(0, 5, 10) # arroja 10 valores entre 0 y 5.
plt.figure(figsize=(4,3)) # visualiza imagen con ancho 4 y alto de 3.
plt.plot(x,y) # visualiza la gráfica y = f(x)
EJERCICIO EN CLASE
1. Importe el archivo (o dataset deseado) e imprima el DataFrame. Una vez insertados
los datos, utilice las instrucciones como drop, columns, type, unique, describe, loc, etc.
3. A partir del nuevo Dataframe, incluya nuevas columnas que realicen cálculos sencillos.
4. Crear un nuevo Dataframe donde incluya nuevas columnas de tasa de crecimiento con
función log.
• Dado que los datos por solos tienen poco valor, es necesario
extraerlos, transformarlos y analizarlos para Identificar patrones a
través de ellos (Aprendizaje automático). La biblioteca sklearn que se
verá a continuación, esta relacionada con las bibliotecas numpy y
pandas.
• Al reducir las dimensiones del DataFrame, con las instrucciones drop y dropna, el
primero para columnas que no se necesitan y el segundo para eliminar filas vacías
o NaN, es necesario aplicar df.reset_index(drop=True).