Documentos de Académico
Documentos de Profesional
Documentos de Cultura
IBD-P3-T1 - Entrega Final Reporte de Practicas
IBD-P3-T1 - Entrega Final Reporte de Practicas
Introducción................................................................................................................ 3
Investigación de Python..............................................................................................4
Conclusión................................................................................................................ 86
Introducción
En el vertiginoso mundo tecnológico del siglo XXI, la generación y el
procesamiento masivo de datos se han convertido en el epicentro de la revolución digital.
Este fenómeno, conocido como Big Data, abarca la recolección, almacenamiento, análisis y
visualización de volúmenes colosales de información generada a una velocidad vertiginosa.
La complejidad de este universo de datos plantea desafíos sin precedentes, pero también
brinda oportunidades infinitas para el descubrimiento de patrones, la toma de decisiones
informadas y la innovación en diversas áreas, desde la ciencia y la medicina hasta el
comercio y el entretenimiento.
A lo largo de esta investigación, exploraremos las diversas facetas del Big Data y
cómo Python se integra en cada una de ellas. Desde el análisis exploratorio de datos hasta la
generación de texto mediante inteligencia artificial, pasando por el desarrollo de juegos y la
visualización de datos, nos sumergiremos en un viaje de descubrimiento y aprendizaje en el
fascinante mundo del Big Data con Python como nuestro fiel compañero de ruta.
Investigación de Python
Características de Python:
Aplicaciones de Python:
Siglo 20
El primer proyecto de big data fue creado en 1937 y
encargado por la administración de Franklin D. Después de que
se aprobó la Ley de Seguridad Social, el gobierno tuvo que
realizar un seguimiento de las contribuciones de 26 millones de
estadounidenses y más de 3 millones de empleadores. A IBM se
le adjudicó un contrato para desarrollar lectores de tarjetas
perforadas para este gran proyecto de contabilidad. La primera
máquina procesadora de datos apareció en 1943. En 1952 se
creó la Agencia de Seguridad Nacional (NSA) y en 10 años se
empleó a más de 12.000 criptólogos. En 1965, el gobierno de
Estados Unidos decidió construir el primer centro de datos para
almacenar más de 742 millones de declaraciones de impuestos.
Así como 175 millones de conjuntos de huellas dactilares que
transfieren todos esos registros a cintas magnéticas de
computadora que deben almacenarse en un solo lugar.
Posteriormente, el proyecto fue abandonado por temor al "Gran
Hermano". Sin embargo, se acepta generalmente que este es el
comienzo de la era del almacenamiento electrónico de datos en
la historia del big data. A partir de la década de 1990, la
generación de datos aumentó a medida que más y más
dispositivos se conectaban a Internet.
El término “big data” abarca datos que contienen una mayor variedad y
que se presentan en volúmenes crecientes y a una velocidad
superior. Esto también se conoce como “las tres V”.
Dicho de otro modo, el big data está formado por conjuntos de datos de
mayor tamaño y más complejos, especialmente procedentes de
nuevas fuentes de datos. Estos conjuntos de datos son tan
voluminosos que el software de procesamiento de datos
convencional sencillamente no puede gestionarlos. Sin embargo,
estos volúmenes masivos de datos pueden utilizarse para
abordar problemas empresariales que antes no hubiera sido
posible solucionar.
1.Integración
2.Gestión
3.Análisis
• Son bases de datos muy útiles para organizar y gestionar información no estructurada, o
cuando no se tiene una noción clara de los datos a almacenar.
• Son bases de datos con alto grado de escalabilidad y están diseñadas para soportar grandes
volúmenes de datos.
• No utilizan el lenguaje SQL para consultas, aunque sí lo pueden usar como herramienta de
apoyo.
Ventajas
Estas son las principales ventajas de una base de datos no relacional:
• Son mucho más flexibles a la hora de crear esquemas de información, lo que las convierte
en una solución ideal para el almacenamiento y gestión de datos no estructurados o
semiestructurados.
• Ofrecen una mayor escalabilidad. Pueden soportar mayores volúmenes de datos y añadir
mayor capacidad añadiendo nuevos módulos de software, sin necesidad de añadir nuevos
servidores.
• Garantizan un alto rendimiento, ya que están diseñadas para trabajar con modelos de datos
concretos y patrones de acceso específicos.
• Son muy funcionales, ya que cuentan con API exclusivas y proporcionan modelos de datos
para trabajar con cada tipo de datos presentes en la base.
Desventajas
Por su parte, las principales desventajas de una base de datos
no relacional son las siguientes:
• No cumplen igual que las relacionales con las propiedades de atomicidad, consistencia,
integridad y durabilidad.
• No son compatibles con determinadas consultas en lenguaje SQL.
• Carecen de un sistema estandarizado ya que todavía son bases de datos relativamente
nuevas.
• Muchos sistemas de gestión de bases de datos relacionales son de código abierto y tienen
una gran comunidad detrás programando soluciones y nuevas funcionalidades. En el caso
de las bases de datos no relacionales este soporte es mucho más limitado.
extremadamente grande suele resultar deseable evitar los JOIN. Esto se debe
a que, cuando la operación no es la búsqueda de una clave, la sobrecarga
puede llegar a ser muy costosa. Las soluciones más directas consisten en
desnormalizar los datos, o bien realizar el JOIN mediante software, en la
capa de aplicación.
MongoDB
MongoDB es un DBMS de código abierto, NoSQL y orientado a
documentos. MongoDB Inc. ofrece una suite integrada de servicios cloud
de bases de datos, así como soporte comercial. Se suele usar para
almacenar grandes volúmenes de datos.
Redis
Redis, abreviatura de «Remote Dictionary Server», es un
sistema de gestión de bases de datos de código abierto, NoSQL de
clave-valor.
Desarrollador: Redis.
Autor original: Salvatore Sanfilippo.
Última actualización de Redis: Redis 7.0.7.
Licencia de Redis: BSD de 3 cláusulas.
ObjectDB
ObjectDB es un DBMS orientado a
objetos, multiplataforma. Requiere usar una de las APIS estándar
de Java: JPA (Jakarta Persistence) o JDO (Java Data Objects). Está
pensado para proporcionar un mejor rendimiento y aplicaciones más
rápidas. Además, se presenta como la opción más productiva para
desarrollar aplicaciones de BBDD Java usando la API Java Persistence.
BigTable
BigTable es un sistema de gestión de bases de datos
completamente gestionado, de clave-valor y tabular. Está
diseñado para grandes cargas de trabajo analíticas y operativas.
Forma parte del portfolio de Google Cloud y, como tal, se utiliza
en muchas de las aplicaciones de Google como Google Analytics, Google Maps o
Gmail.
Desarrollador: Google.
Lanzamiento inicial de BigTable: 2005.
Licencia de BigTable: propietaria.
DynamoDB
DynamoDB o Amazon DynamoDB es un DBMS de
clavevalor y documental, multiplataforma. Forma parte del portfolio
de Amazon Web Services.
Desarrollador: Amazon.
Lanzamiento inicial de DynamoDB: 2012.
Licencia de DynamoDB: propietaria.
Cassandra
Cassandra o Apache Cassandra es un DBMS gratuito, de
código abierto y tabular —modelado a partir de BigTable—.
Elasticsearch
Elasticsearch es un motor de analíticas y búsqueda RESTful,
basado en la librería Lucene. Elasticsearch es el sucesor de un motor de
búsqueda anterior llamado Compass, también diseñado por Shay Banon.
CouchDB
CouchDB o Apache CouchDB es un DBMS de clave-valor, de
código abierto. Está optimizado para usarlo en dispositivos móviles
gracias a sus capacidades de sincronización y replicación. Permite
trabajar offline mientras la conexión de red no está disponible.
InfiniteGraph
InfiniteGraph es un DBMS orientado a grafos,
multiplataforma, escalable y habilitado para la
nube.
Está pensado para soportar un rendimiento alto y optimizado para grandes
conjuntos de datos, altamente conectados y complejos.
Instalación
1. Descargamos anaconda
2. Le damos en aceptar
5. Le damos en register
6. Le damos en instalar
7. Ya instalado
8. El final
9. Abrimos la terminal
Ejercicios
1. En la división aritmética, por ejemplo 17/6, el cociente es 2 y el residuo es 5. De tal
manera que 6*2+5=17
b. 8 % 3= 1
c. 111 // 6=16
d. 194 % 2=0
g. 25 módulo 3 es, 1
a. 25 / 4=
b.
25 // 4=
c.
0 / 4=
d.
0 // 4=
e. 25 /
0=
f. 25 // 0=
3. Utiliza Jupyter Notebook y JupiterLab para realizar los siguientes cálculos. Guarda
tus resultados en un archivo con nombre prueba2. Identifica aquel que genera un error y
explica la razón por la que ocurre.
a. 32 / 8 -3=
b. 32 // 8 -3=
c. 32 / (8 -3)=
d. 32 // (8 -3)=
e. 32 / (8 -8)=
f. 32 / (8 -5)=
Obtener Resultados De Una Página Web Con Python
1. Importamos las librerias necesarias
Para este ejercicio estamos creando un “token especial” (de control) que llamaremos “ibai”
con el que luego indicaremos al modelo que queremos obtener una salida de este tipo.
6. Y este es el Resultado
4. Descripción concisa
Proporciona una descripción concisa y general del DataFrame. Esta
función de pandas imprime información sobre el índice, el tipo de datos y
la memoria utilizada. En resumen, es una forma rápida de obtener una
visión general de la estructura de los datos contenidos en el DataFrame.
5. Generar estadísticas
Genera estadísticas descriptivas para cada columna numérica en el
DataFrame, como la media, la desviación estándar, los cuartiles, etc.
Proporciona una visión general rápida de la distribución y la variabilidad
de los datos numéricos en el DataFrame. Es útil para obtener una
comprensión inicial de la naturaleza de los datos cuantitativos.
población en España.
9. Visualizar datos
Elimina la columna 'country' de un DataFrame que contiene datos
de crecimiento de población para España y luego representa gráficamente
la evolución de la población en España a lo largo del tiempo mediante un
gráfico de barras.
10. Crecimiento de la población en Argentina
Crea un nuevo DataFrame llamado df_pop_ar que contiene solo
población en Argentina.
22. Filtrar
Filtra el DataFrame df_espanol para incluir solo las filas donde el
23. visualizar las áreas de los países de habla hispana con áreas superiores a 110,000 km²
Visualiza las áreas de los países de habla hispana con áreas
superiores a 110,000 km² en un gráfico de barras, ordenado por área y con
nombres de países rotados para mejorar la legibilidad:
Práctica Graficas en Python 1
Ejercicio 1
Escribir un programa que pregunte al usuario por las ventas de un rango de años y muestre
por pantalla un diagrama de líneas con la evolución de las ventas.
# Solicitar al usuario las ventas para cada año en el rango for anio in
range(anio_inicial, anio_final + 1):
venta = float(input(f"Ingrese las ventas para el año {anio}: "))
ventas_datos.append(venta)
1. Importar la biblioteca matplotlib.pyplot con el alias plt para poder utilizar sus funciones
de trazado de gráficos.
2. Solicitar al usuario que ingrese el año inicial y final del rango que desea analizar.
3. Inicializar una lista vacía llamada ventas_datos para almacenar los datos de ventas de cada
año.
4. Utilizar un bucle for para iterar a través de cada año en el rango especificado por el usuario.
5. En cada iteración del bucle, solicitar al usuario que ingrese las ventas para el año
correspondiente y agrega este valor a la lista ventas_datos.
6. Utilizar la función plt.plot() de Matplotlib para crear un diagrama de líneas con los datos de
ventas. En este caso, se traza la evolución de las ventas a lo largo de los años.
7. Se agrega un título al gráfico utilizando plt.title() que indica la evolución de ventas desde el
año inicial hasta el año final.
8. Se etiquetan los ejes x e y del gráfico con "Año" y "Ventas", respectivamente, utilizando
plt.xlabel() y plt.ylabel().
9. Finalmente, se muestra el diagrama de líneas utilizando plt.show().
10. Se ejecutará el código
Y se obtiene esto
Ejercicio 2
Escribir una función que reciba un diccionario con las notas de las asignaturas de un curso
y una cadena con el nombre de un color y devuelva un diagrama de barras de las notas en
el color dado.
import matplotlib.pyplot as plt def
crear_diagrama_barras(notas, color):
"""
Crea un diagrama de barras de las notas de un curso en un color
específico.
Devuelve:
None: Muestra el diagrama de barras.
"""
2. Dentro de la función, se extraen los nombres de las asignaturas y las notas del diccionario y
se almacenan en listas separadas.
3. Se utiliza plt.bar() para crear el diagrama de barras. Se pasan las listas de asignaturas y
notas, junto con el color especificado.
4. Se agregan etiquetas a los ejes x e y del diagrama utilizando plt.xlabel() y plt.ylabel()
respectivamente.
5. Se agrega un título al diagrama utilizando plt.title(). 6. Finalmente, se muestra el diagrama
de barras utilizando plt.show().
Se ejecutará el código
Y obtendremos esto:
Ejercicio 3
Escribir una función que reciba una serie de Pandas con las notas de los alumnos de un
curso y devuelva un diagrama de cajas con las notas. El diagrama debe tener el título
“Distribución de notas”.
import pandas as pd import
matplotlib.pyplot as plt def
crear_diagrama_cajas(notas_serie)
:
"""
Crea un diagrama de cajas de las notas de los alumnos de un curso.
:param notas_serie: Una serie de Pandas con las notas de los alumnos.
:return: None
"""
# Crear un DataFrame con las notas notas_df =
pd.DataFrame(notas_serie, columns=["Notas"])
# Mostrar el diagrama
plt.show()
Se obtendrá esto:
Practica 2 Graficas Python
1.- Ejercicio 4:
Importamos las bibliotecas pandas y matplotlib con los alias pd y plt, respectivamente.
Posteriormente, definimos nuestra función llamada "diagrama_evolucion_ventas".
Dentro de esta función, utilizamos el diccionario "gráficos" con la ayuda de plt, que
nos proporcionará herramientas para generar gráficos de líneas, barras, sectores y
áreas. Utilizamos el DataFrame df_ventas, donde los años actúan como índices.
import pandas as pd
import matplotlib.pyplot
as plt
# Añadimos el título
plt.title('Evolución del número de ventas')
df_ventas = pd.Series([1200, 840, 1325, 1280, 1500], index = [2000, 2001, 2002,
2003, 2004]) diagrama_evolucion_ventas(df_ventas, 'lineas') plt.show()
diagrama_evolucion_ventas(df_ventas, 'area') plt.show()
diagrama_evolucion_ventas(df_ventas, 'barras') plt.show()
Imagen funcionando:
Actividad 5:
import pandas as pd
import matplotlib.pyplot
as plt
# Añadimos el título
plt.title('Evolución del número de ventas')
df_ventas = pd.Series([1200, 840, 1325, 1280, 1500], index = [2000, 2001, 2002,
2003, 2004]) diagrama_evolucion_ventas(df_ventas, 'lineas') plt.show()
diagrama_evolucion_ventas(df_ventas, 'area') plt.show()
diagrama_evolucion_ventas(df_ventas, 'barras') plt.show()
diagrama_evolucion_ventas(df_ventas, 'sectores')
plt.show()
Actividad 6:
import pandas as pd
import matplotlib.pyplot
as plt
def diagrama_lineas_ingresos_gastos(datos):
datos.Gastos.max()) + 500])
# Añadimos el título
plt.title('Evolución de ingresos y gastos')
Actividad 8:
Importamos la Librería pandas como pd y matplotlib como plt, ahora solo
andamos haciendo la importación del ejercicio, ahora definiremos la biblioteca de pandas
como el manejo de datos y el trazdo de gráficos, leeremos el archivo llamado titanic.csv,
ahora después de leerlo se creara la figura y los conjuntos de ejes.
Ahora calcularemos el valor de las columnas del survicved que es el dataframe con
el df_titanic, con un grafico de pasteles y obtendremos el pastel de muertos y
supervivientes.
import pandas as pd
import matplotlib.pyplot as plt
- requests: Esta librería permite enviar solicitudes HTTP fácilmente desde Python. Se usa para
obtener el contenido HTML de una página web.
- BeautifulSoup: Es una librería de Python para extraer datos de archivos HTML y XML. Se
utiliza para analizar el contenido HTML y extraer la información deseada.
- matplotlib.pyplot: Es una librería de trazado de gráficos en 2D de Python. Se utiliza para
visualizar los datos en forma de gráficos.
Aquí, se define la URL de la página web que deseas analizar (url). Luego, se envía una
solicitud HTTP GET a esa URL utilizando requests.get(url), y el contenido HTML de la página
se guarda en la variable html_content.
plt.figure(figsize=(8, 6))
plt.bar(productos_nombres, precios, color='skyblue')
plt.xlabel('Productos') plt.ylabel('Precio ($)')
plt.title(f'Precios de Productos Destacados en la categoría "{categoria}"')
plt.xticks(rotation=45, ha='right') plt.tight_layout() plt.show()
código genera gráficas para visualizar los precios de los productos destacados en cada
categoría. Utiliza matplotlib.pyplot para trazar gráficos de barras con nombres de productos en
el eje x y precios en el eje y.
Resultados Obtenidos
import matplotlib.pyplot as plt
import seaborn as sns # Importamos Seaborn para acceder a paletas de colores más
atractivas
from bs4 import BeautifulSoup import requests
# Buscamos la tabla que contiene los datos del rendimiento de ventas por producto
table = soup.find_all('table')[-1] # Última tabla, según el HTML proporcionado
# Extraemos los datos de la tabla y los almacenamos en una lista de listas rows =
table.find_all('tr') data = [] for row in rows:
cols = row.find_all(['td', 'th']) cols =
[col.text.strip() for col in cols]
data.append(cols)
Este bloque de código busca la última tabla en la página web, que se supone que contiene los
datos de rendimiento de ventas por producto. Luego extrae los datos de la tabla y los
almacena en una lista de listas llamada data.
# Eliminamos la fila de encabezado
data = data[1:]
# Transponemos los datos para que los meses estén en las filas y los productos en las
columnas
data_transposed = list(zip(*data))
Los datos se transponen para que los meses estén en las filas y los productos en las
columnas, lo que facilita la manipulación de los datos para la visualización.
# Definimos las etiquetas del eje x en base a la longitud de los datos de ventas
disponibles
etiquetas_meses = ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio'][:len(ventas[0])]
Se extraen los nombres de los productos y los datos de ventas por mes. Además, se definen
las etiquetas de los meses en base a la longitud de los datos de ventas disponibles.
Se utiliza una paleta de colores de Seaborn para asignar un color diferente a cada producto.
Luego, se itera sobre cada producto y se grafica su rendimiento de ventas a lo largo de los
meses.
Resultados Obtenidos
Conclusión:
En conclusión, el análisis de datos en Anaconda JupyterLab Notebook ofrece un marco
robusto para abordar los desafíos de la era digital. Al proporcionar una plataforma intuitiva y
poderosa para la manipulación de datos, esta herramienta no solo fortalece las habilidades
analíticas de los usuarios, sino que también impulsa la innovación y el descubrimiento en
múltiples campos. En un mundo cada vez más orientado a los datos, dominar estas
habilidades se vuelve esencial para el éxito profesional y académico.
Conclusión
En el emocionante viaje a través del Big Data con Python como guía, hemos
explorado las profundidades de un universo digital en constante expansión y evolución.
Desde la manipulación de datos hasta la generación de conocimientos significativos, Python
ha demostrado ser una herramienta incomparable en el arsenal del analista de datos
moderno. Su flexibilidad, eficiencia y robustez lo convierten en el lenguaje ideal para
abordar los desafíos del Big Data en todas sus dimensiones.
En un mundo cada vez más impulsado por los datos, dominar Python se ha
convertido en una habilidad esencial para cualquier profesional que busque sobresalir en el
campo del Big Data. Ya sea que estemos analizando tendencias de mercado, descubriendo
patrones ocultos en conjuntos de datos masivos o desarrollando soluciones innovadoras,
Python nos brinda las herramientas necesarias para triunfar en este apasionante viaje hacia
el futuro digital. En última instancia, con Python como aliado, el potencial del Big Data es
verdaderamente ilimitado, y el único límite es nuestra imaginación y creatividad.