Integración de Datos de Diversas Fuentes y Formatos

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 20

Bootcamp Análisis y Visualización de Datos

INSTALACIÓN DE PYTHON EN WINDOWS

Download Python | Python.org

Ing. Jesús Rubio Página 1 de 20


Bootcamp Análisis y Visualización de Datos

El PATH, en Variables de Entorno:


C:\Users\usuario\AppData\Local\Programs\Python\Python312\Scripts\
C:\Users\ usuario \AppData\Local\Programs\Python\Python312\
C:\Users\ usuario \AppData\Local\Programs\Python\Launcher\

Ing. Jesús Rubio Página 2 de 20


Bootcamp Análisis y Visualización de Datos

IDLE, entorno de desarrollo de Python


• IDLE (Integrated DeveLopment Environment for Python) es un entorno gráfico de
desarrollo elemental que permite editar y ejecutar programas en Python.
• IDLE es también un entorno interactivo en el que se pueden ejecutar instrucciones
sueltas de Python.
• En Windows, IDLE se distribuye junto con el intérprete de Python, es decir, al instalar
Python en Windows también se instala IDLE.

Desde Consola:

Primer Programa en Python: Hola Mundo

Salida: Ctrl + Z

Desde Aplicaciones de Python:

Primer Programa en Python: Hola Mundo

Ing. Jesús Rubio Página 3 de 20


Bootcamp Análisis y Visualización de Datos

Fundamentos de Python
print('Hola Mundo desde Python')

variable = 5
print(variable)

varia_uno, varia_dos, varia_tres = 1, "dos", 3;


print(varia_uno)
print(varia_dos)
print(varia_tres)

varia_cuatro = "Hola Mundo"


varia_cinco = "Adios Mundo"
varia_cuatro = varia_cinco
print(varia_cuatro)
print(varia_cinco)

resultado = variable + 7
print(resultado)

varia_seis = resultado + varia_tres


varia_siete = varia_cuatro + varia_cinco
print(varia_seis)
print(varia_siete)

#union = varia_seis + varia_siete


#print(union)
print("-----")
#Datos Numericos
#int -> Enteros
#float -> con decimales
#complex -> complejos

x = 9
y = 6489544444444440000000
print(x+y)

#variables con potencia


m = 35e3
n = 12e4
print(m+n)

#numeros complejos
p = 5j
q = 3 + 7j
r = 9 - 5j

Ing. Jesús Rubio Página 4 de 20


Bootcamp Análisis y Visualización de Datos

print(p)
print(q+r)

print("-----")
# conversion de datos
s = 1
t = 2.8
u = 1j

a = float(s)
b = int(t)
c = complex(s)

print(a)
print(b)
print(c)

type(a)
type(b)
type(c)

print("-----")
# valores booleanos
valor_verdadero = True
valor_falso = False

print(valor_verdadero)
print(valor_falso)

una_cadena = "Una Cadena comillas dobles"


dos_cadena = 'Una cadena comilla simple'
tres_cadena = """Esta cadena
ocupa mas de una
Linea va en comillas triples"""
cuatro_cadena ='''otro
tipo de
cadena'''
cinco_cadena = 'el signo "Comillas" (") se usa en Python para
acortar cadenas'
seis_cadena = 'el signo \"Comillas\" (\") se usa en Python para
acortar cadenas'
siete_cadena = "Esto va en una linea. \ny esto en la siguiente"
#Cadena que no queremos que se interprete ningun caracter
ocho_cadena = r"los signos como \n y \t no seran interpretados"
#Cadena Unicode
nueve_cadena = "Texto de la cádeña"

Ing. Jesús Rubio Página 5 de 20


Bootcamp Análisis y Visualización de Datos

print(una_cadena)
print(dos_cadena)
print(tres_cadena)
print(cuatro_cadena)
print(cinco_cadena)
print(seis_cadena)
print(siete_cadena)
print(ocho_cadena)
print(nueve_cadena)

#Tipo None
variable_None = None
print(variable_None)

print("-----")
#Casteo
texto = "10"
un_entero = int(texto)
print(un_entero)
type(un_entero)

flotante = float(4)
print(flotante)
type(flotante)

entero = 5
entero_cadena = str(entero)
print(entero_cadena)
type(entero_cadena)

entero_I = 500
hexadecimal = hex(entero_I)
octal = oct(entero_I)

print(hexadecimal)
print(octal)

num_uno = 10
num_dos = 5
suma = num_uno + num_dos
resta = num_uno - num_dos
multipli = num_uno * num_dos
divi = num_uno / num_dos
potencia = num_uno ** num_dos

Ing. Jesús Rubio Página 6 de 20


Bootcamp Análisis y Visualización de Datos

print(suma)
print(resta)
print(multipli)
print(divi)
print(potencia)

num_tres = 3
division_entera = num_uno // num_tres
modulo = num_uno % num_tres

print(division_entera)
print(modulo)

print("-----")
#version con asignación
num_uno += num_dos #ahora num_uno vale 15
print(num_uno)
num_uno -= num_dos #ahora num_uno vale 10
print(num_uno)
num_uno *= num_dos #ahora num_uno vale 50
print(num_uno)

#si sumamos un int con un float el resultado sera un float para


no perder decimales

num_cuatro = 7
texto = "Hola Mundo"

print(3 == 2)
print(3 > 2)
print(texto == "Hola Mundo")
print(7 >= 6)

#operadores cadena
saludo = "Hola " + "Mundo"
gallina = 5 * "Co"
print(saludo)
print(gallina)

otro_saludo = "Hola "


otra_gallina = "Co"

otro_saludo += "Mundo"
otra_gallina *= 5

print(otro_saludo)
print(otra_gallina)

Ing. Jesús Rubio Página 7 de 20


Bootcamp Análisis y Visualización de Datos

otro_resultado = 3 == 2
print(otro_resultado)
print(True and True)
print(True and otro_resultado)
print(not True)
print(False or otro_resultado)

print("-----")
#operador de identidad
varia_ocho = 5
varia_nueve = 5.0
print(varia_ocho is varia_nueve)

print("-----")
#operadores de pertenencia
lista_uno = ["silla","mesa","armario","butaca"]
print("silla" in lista_uno)
print("sofa" in lista_uno)
print("mesa" not in lista_uno)

lista_vacia = []

lista_explicita = list(("hola", "mundo", "python"))


print(lista_vacia)
print(lista_explicita)
print(lista_explicita[1])
lista_explicita[1] = "world"
print(lista_explicita)
del lista_explicita[2]
print(lista_explicita)

lista_matriz = [[1, 2, 3], ["a", "b", "c"]]


print (lista_matriz[1][0])
print (lista_matriz[0][2])

lista_anidada = ["primero", 2, "tercero", ["a", "b", "c"]]


print(lista_anidada[2])
print(lista_anidada[3][1])

print("-----")
lista_sentido_inverso = ["primero", "segundo", "tercero",
"cuarto", "quinto"]

lista_sentido_inverso_extrae = lista_sentido_inverso[1:4]
print(lista_sentido_inverso_extrae)

Ing. Jesús Rubio Página 8 de 20


Bootcamp Análisis y Visualización de Datos

lista_sentido_inverso_extrae[0:2] = ["otro", "y otro"]


print(lista_sentido_inverso_extrae)

lista_rango_indicado =
[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18]
print(lista_rango_indicado[3:15])
print(lista_rango_indicado[3:15:2])
print(lista_rango_indicado[3:15:3])

print("-----")
#tuplas: lo mismo que un lista pero no puede modificarse

tupla = "primero", "segundo", "tercero", "cuarto", "quinto",


"sexto"
print(tupla)
print(tupla[2])
print(tupla[1:3])

#para distinguir una tupla constituida por un solo elemento de


una variable se debe colocar una coma detras del elemento

variable_diez = 10
tupla = 10,

print(variable_diez)
print(tupla)

#cadenas como consecuencias


diez_cadena = "Hola Mundo"
print(diez_cadena[5])
print(diez_cadena[2:8])

print("-----")
#Diccionarios
diccionario_uno = {"animal": "gato", "cosa": "piedra",
"planta": "lechuga"}
print(diccionario_uno)
print(diccionario_uno["animal"])
print(diccionario_uno["planta"])
diccionario_uno["planta"] = "coliflor"
print(diccionario_uno["planta"])
diccionario_vacio = {}
print(diccionario_vacio)

#las claves de un diccionario no deben repetirse


diccionario_dos = {"nombre": "clark Kent", "nombre":
"superman", "ciudad": "Metropolis"}

Ing. Jesús Rubio Página 9 de 20


Bootcamp Análisis y Visualización de Datos

print(diccionario_dos)

print("-----")
#Sets
cubiertos = {"tenedor", "cuchara", "cuchillo", "cucharita"}
vajilla = set(["plato","taza","copa"])
print(cubiertos)
print(vajilla)

print("-----")
#Mutable e Inmutable
var1 = "Hola"
var2 = var1
var3 = "Adios"
print(id(var1))
print(id(var2))
print(id(var3))
# en Python una variable es una referencia a un dato, es mas
rapido crear una referencia que copiar el contenido de la
variable

print("-----")
#Condicionales

mivar = 2
if mivar > 3:
print("la variable es mayor que tres")
print("No esta mal")

elif mivar < 3:


print("La variable es menor que tres")
print("Me parece poco")

else:
print("La variable es tres")
print("Justo tres, ni mas ni menos")

print("Esto se muestra siempre")

Ing. Jesús Rubio Página 10 de 20


Bootcamp Análisis y Visualización de Datos

print("-----")
#Ciclos

aa = 0
while aa < 8:
aa += 1
print(aa)

aaa = 0
while aaa < 8:
aaa += 1
if aaa == 4:
break
print(aaa)

aaaa = 0
while aaaa < 8:
aaaa += 1
if aaaa == 4:
continue
print(aaaa)

lista_dos = ["media", "pantalon", "camisa", "gorra"]


for prenda in lista_dos:
print("La lavadora ha limpiado mi " + prenda)

saludo_dos = "otro hola mundo"


for letra in saludo_dos[:]:
print(letra)

datos = {"Nombre": "Jesus", "Apellido": "Rubio", "Altura":


"1.70"}

for concepto_uno in datos:


print(concepto_uno)

for concepto_dos in datos:


print(concepto_dos + ": " + datos[concepto_dos])

Ing. Jesús Rubio Página 11 de 20


Bootcamp Análisis y Visualización de Datos

print("-----")
#Excepciones

dividendo = "A"
divisor = 2

try:
resultado_div = dividendo / divisor

except ZeroDivisionError:
if divisor == 0:
print("No se puede dividir por cero")
except TypeError:
print("Hay un error en el divisor")
else:
print("El resultado es: ", resultado_div)

print("-----")
#Funciones
def saludo_tres():
print(""""Hola Mundo
que bueno es saludar
y ser saludado
""")

saludo_tres()

def valorde_pi():
numero_pi = 3.14159
return numero_pi

pi = valorde_pi()
print(pi)
print(valorde_pi())

def saludo_cuatro():
return "Hola", "Mundo"

hola = saludo_cuatro()
print(hola)

Ing. Jesús Rubio Página 12 de 20


Bootcamp Análisis y Visualización de Datos

def cuadrado(numero):
cuadrado = numero * numero
return cuadrado

resultado_dos = cuadrado(5)
print(resultado_dos)

def saluda(nombre, sexo):


print("Hola " + nombre)
if sexo == "M" or sexo == "m":
print("Como te va Hombre?")
elif sexo == "F" or sexo == "f":
print("Como te va Mujer?")
else:
print("¿Como te va?")

saluda("Juan", "Hombre")

def tabla_multiplicar(nombre, numero = 1):


print("Table de Multiplicar del " + str(numero))
print("Impresa automaticamente por " + nombre)
i = 0
while i < 11:
print(str(numero) + " X " + str(i) + " = " + str(numero
* i))
i += 1

tabla_multiplicar("Nicolas", 1)

def imprime_lista(nombre_lista, *cosas):


print("Lista de " + nombre_lista)
for cosa in cosas:
print(cosa)

imprime_lista("Piezas", "tornillo", "tuerca", "cable")

def imprime_datos(nombre, **datos):


print("Datos de " + nombre)
for clave in datos:
print(clave + ": " + datos[clave])

imprime_datos("Laura", edad = "Joven", guapa = "Si")

Ing. Jesús Rubio Página 13 de 20


Bootcamp Análisis y Visualización de Datos

ambito_variable = "Fuera de la funcion"


def una_funcion():
ambito_variable = "Dentro de la funcion"
print(ambito_variable)

print(ambito_variable)
una_funcion()

var4 = "Fuera de la funcion"


def una_funcion_2():
print(var4)

una_funcion_2()
print(var4)

print("*****")

var5 = "fuera de la funcion"


def una_funcion_3():
global var5
var5 = "dentro de la funcion"
print(var5)

una_funcion_3()
print(var5)

#Generadores
def genera_lista(num):
lista = []
i = 1
while i <= num:
lista.append(i)
i += 1
return lista

for i in genera_lista(5):
print(i)

Ing. Jesús Rubio Página 14 de 20


Bootcamp Análisis y Visualización de Datos

#Decorador

def decorador(funcion_entrada):
def funcion_salida():
funcion_entrada()
print("Esto no estaba en la funcion original")
return funcion_salida

@decorador
def saludo():
print("Hola")

saludo()

def decorador2(funcion_entrada):
def funcion_salida(param):
if param == "Laura":
print("Buenos Días, campeona")
elif param == "Nicolas":
print("Buenos Días, campeon")
else:
funcion_entrada(param)
print("Que tengas un buen dia")
return funcion_salida

@decorador2
def saludo2(nombre):
print("Hola " + nombre)

saludo2("Nicolas")

Ing. Jesús Rubio Página 15 de 20


Bootcamp Análisis y Visualización de Datos

print("*****")
#funcion lambda

cuadrado_otra = lambda x: x**2


resultado_tres = cuadrado_otra(5)
print(resultado_tres)

suma_lambda = lambda x, y : x + y
resultado_cuatro = suma_lambda(3, 9)
print(resultado_cuatro)

cuadrado_modi = lambda x: x**2


suma_lambda_dos = lambda x, y: x + y
resultado_cinco =
cuadrado_modi(suma_lambda_dos(cuadrado_modi(2), 5))
print(resultado_cinco)

Refinamiento de Técnicas de Análisis de Datos: Integración de datos


de diversas fuentes y formatos
Para refinar las técnicas de análisis de datos mediante la integración de datos de
diversas fuentes y formatos, es fundamental seguir un proceso estructurado que
garantice la calidad y coherencia de los datos combinados.

• Identificación de Fuentes de Datos:


 Enumerar todas las fuentes de datos relevantes para tu análisis,
incluyendo bases de datos, archivos CSV, APIs, etc.
 Asegurarse de comprender la estructura y el formato de cada fuente
de datos.
• Normalización de Datos:
 Estandarizar los datos para que tengan una estructura coherente y
consistente.
 Asegurarse de que los datos estén en el mismo formato (por ejemplo,
fechas en el mismo formato, unidades de medida consistentes).
• Integración de Datos:
 Utilizar herramientas de integración de datos para combinar
diferentes conjuntos de datos.
 Considerar el uso de técnicas como la unión de tablas, la
concatenación de datos y la limpieza de datos duplicados.

Ing. Jesús Rubio Página 16 de 20


Bootcamp Análisis y Visualización de Datos

• Limpieza de Datos:
 Eliminar datos incompletos, incorrectos o irrelevantes.
 Aplicar técnicas de limpieza de datos para corregir errores y asegurar
la calidad de los datos.
• Análisis Exploratorio de Datos:
 Realiza un análisis exploratorio para comprender mejor la naturaleza
de los datos combinados.
 Identificar patrones, tendencias y posibles relaciones entre los datos.
• Visualización de Datos:
 Utiliza visualizaciones como gráficos, tablas y diagramas para
representar los datos integrados de manera clara y comprensible.
 Las visualizaciones ayudarán a identificar insights y patrones de
manera más efectiva.

La librería Pandas en Python

Pandas es una librería de Python especializada en el manejo y análisis de estructuras


de datos. Las principales características de esta librería son:

• Define nuevas estructuras de datos basadas en los arrays de la librería NumPy


pero con nuevas funcionalidades.
• Permite leer y escribir fácilmente ficheros en formato CSV, Excel y bases de
datos SQL.
• Permite acceder a los datos mediante índices o nombres para filas y columnas.
• Ofrece métodos para reordenar, dividir y combinar conjuntos de datos.
• Permite trabajar con series temporales.
• Realiza todas estas operaciones de manera muy eficiente.

Ing. Jesús Rubio Página 17 de 20


Bootcamp Análisis y Visualización de Datos

datos1.csv:
id;clave_comun;nombre;apellido;edad
1;A001;Carlos;Gómez;25
2;A002;Marta;López;30
3;A003;Ana;Rodríguez;28
4;A004;Luis;Fernández;35

datos2.xlsx:
clave_comun,departamento,salario,tipo_contrato
A001,Ventas,30000,Tiempo completo
A002,Marketing,35000,Medio tiempo
A003,Operaciones,32000,Tiempo completo
A004,RRHH,40000,Tiempo completo

datos3.json:
[
{"clave_comun": "A001", "ubicacion": "Ciudad 1", "departamento":
"Zona Norte"},
{"clave_comun": "A002", "ubicacion": "Ciudad 2", "departamento":
"Zona Sur"},
{"clave_comun": "A003", "ubicacion": "Ciudad 3", "departamento":
"Zona Este"},
{"clave_comun": "A004", "ubicacion": "Ciudad 4", "departamento":
"Zona Oeste"}
]

datos4.txt:
clave_comun|ventas_anuales
A001|100000
A002|120000
A003|90000
A004|110000

En la consola:

pip install pandas


pip install openpyxl

Ing. Jesús Rubio Página 18 de 20


Bootcamp Análisis y Visualización de Datos

import pandas as pd

# Leer los datos desde los archivos


datos1 = pd.read_csv('datos1.csv')
datos2 = pd.read_excel('datos2.xlsx')
datos3 = pd.read_json('datos3.json')
datos4 = pd.read_csv('datos3.txt', sep='|') # Usamos sep='|'
para indicar que el separador es el pipe |

# Realizar la combinación de datos basada en las columnas


'clave_comun' y 'departamento'
datos_combinados = pd.merge(datos1, datos2, on='clave_comun')
datos_combinados = pd.merge(datos_combinados, datos3,
on=['clave_comun', 'departamento'])
datos_combinados = pd.merge(datos_combinados, datos4,
on='clave_comun')

# Imprimir las primeras filas del resultado combinado


print(datos_combinados)

Ing. Jesús Rubio Página 19 de 20


Bootcamp Análisis y Visualización de Datos

id clave_comun nombre apellido edad departamento salario


\
0 1 A001 Carlos Gómez 25 Ventas 30000
1 2 A002 Marta López 30 Marketing 35000
2 3 A003 Ana Rodríguez 28 Operaciones 32000
3 4 A004 Luis Fernández 35 RRHH 40000

tipo_contrato ubicacion ventas_anuales


0 Tiempo completo Ciudad 1 100000
1 Medio tiempo Ciudad 2 120000
2 Tiempo completo Ciudad 3 90000
3 Tiempo completo Ciudad 4 110000

Ing. Jesús Rubio Página 20 de 20

También podría gustarte