Primeros Pasos en el Análisis de Datos

Manipulación de Datos con Python 

En la actualidad se cuenta con muchos programas que te ayudan a realizar un análisis estadístico, todos alguna vez trabajamos con el famoso programa Excel, ya que seguramente estamos muy familiarizados debido a que a muchos se nos enseñó a manejar este programa. Sin embargo, este tiene algunas limitaciones como ser: 
  • Limitaciones de capacidad: Aunque Excel puede manejar una gran cantidad de datos, existen límites en cuanto a la cantidad de filas y columnas que puede contener una hoja de cálculo. Esto puede ser una limitación si trabajas con conjuntos de datos extremadamente grandes.
  • Complejidad en fórmulas avanzadas: A medida que las fórmulas se vuelven más complejas, puede resultar difícil de entender y depurar los errores en Excel. Las fórmulas largas y complicadas pueden volverse confusas y propensas a errores.
  • Seguridad de datos: Cuando compartes hojas de cálculo de Excel, existe el riesgo de que los datos confidenciales o importantes se vean comprometidos. A menos que se tomen precauciones adicionales, como proteger con contraseña y establecer permisos de acceso adecuados, es posible que no puedas controlar quién puede ver o editar tus datos.
  • Limitaciones en análisis complejo: Aunque Excel es poderoso en términos de cálculos y análisis básicos, puede tener limitaciones en análisis más complejos, como modelos estadísticos avanzados o análisis de datos masivos. Para tareas más sofisticadas, es posible que necesites utilizar herramientas especializadas.
  • Dependencia de habilidades individuales: El uso efectivo de Excel requiere habilidades específicas, como conocimientos de fórmulas y funciones, así como habilidades de manipulación y análisis de datos. Esto puede limitar la capacidad de colaboración si los usuarios no tienen un nivel similar de competencia en Excel.
Debido a estas dificultades una de las mejores opciones seria utilizar Python, ya que este es un programa que tiene un lenguaje de sintaxis amplia y legible, esto es útil al momento de escribir código, ya que se puede plantear soluciones con menos líneas de código, además  el mismo puede ser usado en distintos sistemas operativos como Linux. Windows y Mac. 

Debido a su simplicidad este es uno de los programas mas utilizados en el mundo, y es esta característica que hace que muchos desarrolladores trabajen en Python, además de contar con una gran cantidad de bibliotecas y frameworks, en este caso para el análisis de datos las tres bibliotecas que utilizaremos son:  Pandas, Numpy, Matplotlib.

Numpy.
¿Porque Numpy?
- Numpy es una librería o biblioteca para el uso del cálculo numérico y el manejo de Arrays (Lista organizada de números)
- Algunas ventajas que tiene Numpy es:
        * 100% Open source
        * Mayor Velocidad
        * Menor uso de datos en la memoria
        * Acepta diferentes tipos de datos
- Algunas de las aplicaciones es:
  1. Operaciones Matemáticas: NumPy es excelente para realizar operaciones matemáticas como sumas, restas, multiplicaciones y divisiones elementales.

  2. Álgebra Lineal: Puedes realizar diversas operaciones de álgebra lineal como producto de matrices, descomposiciones, determinantes, etc.

  3. Transformadas de Fourier y Manipulación de Formas: NumPy es muy útil para realizar transformadas de Fourier y para modelar varias formas matemáticas.

  4. Generación de Números Aleatorios: NumPy tiene un muy buen módulo para generar números aleatorios.

  5. Integración con Otros Lenguajes de Programación de Bajo Nivel: NumPy integra bien con C/C++ y Fortran, lo que permite un procesamiento muy eficiente de los datos.

Ahora veremos algunos ejemplos en donde se utiliza NumPy
1. Operaciones con matrices:

La idea es escribir matrices para posteriormente realizar algunas operaciones, las matrices y las operaciones son las siguientes:

Para ello utilizaremos el siguiente codigo generado con ChatGPT
import numpy as np

# Crear dos matrices
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])

# Suma de matrices
suma = A + B

# Producto de matrices
producto = np.dot(A, B)

# Determinante de una matriz
determinante_A = np.linalg.det(A)

# Matriz inversa
inversa_B = np.linalg.inv(B)

(A, B, suma, producto, determinante_A, inversa_B)

El cual nos da como resultado:

Generación y uso de números aleatorios.

Escribiremos 10 números aleatorios, los cuales nos ayudaran a poder ejemplificar algunas situaciones en la vida real como: notas de una materia, precios de productos, el saldo de una cuenta, etc.
para ello se utilizará el siguiente codigo:

# Generar 10 números aleatorios
numeros_aleatorios = np.random.rand(10)

# Media y desviación estándar
media = np.mean(numeros_aleatorios)
desviacion_estandar = np.std(numeros_aleatorios)

numeros_aleatorios, media, desviacion_estandar


Con la ayuda de los 10 números generados se realizó un pequeño análisis estadístico, el cual fue realizado con la ayuda de ChatGPT


  1. Media de estos números: 0.4318 (aproximadamente)

  2. Desviación estándar: 0.2583 (aproximadamente)



Pandas.

¿Porque Pandas?
- Pandas es una librería o biblioteca que es utilizada para la manipulación de datos.

Ventajas de Pandas

- Pandas fue construida sobre NumPy, lo que lo hace una librería Poderosa

                                                        - Una gran Velocidad

                                                        - Se utiliza poco código

                                                        -  Acepta múltiples formatos de archivo

Algunas aplicaciones son:

  1. Manipulación de Datos: Pandas es excelente para realizar tareas como la limpieza, transformación, y pre-procesamiento de datos.

  2. Análisis de Datos: Ofrece numerosas funciones para el análisis exploratorio de datos, como la agrupación, pivoteo y segmentación de datos.

  3. Manejo de Series Temporales: Pandas es muy usado en el análisis de series temporales, gracias a sus funciones específicas para manejar fechas y horas.

  4. Lectura y Escritura de Datos: Pandas puede leer y escribir datos en una variedad de formatos incluyendo CSV, Excel, SQL, JSON, entre otros.

  5. Merge y Join de Datos: Permite combinar datos de diferentes fuentes de manera eficiente y flexible.

Un ejemplo practico del uso de Pandas es el de poder generar datos y ordenarlos y se creara un data set.para ello se utilizara el siguiente codigo:

import pandas as pd

# Crear un DataFrame de ejemplo
data = {
    'Nombre': ['Ana', 'Luis', 'Carlos', 'María', 'Juan', 'Laura'],
    'Edad': [28, 34, 45, 23, 31, 29],
    'Ciudad': ['Madrid', 'Barcelona', 'Valencia', 'Sevilla', 'Madrid', 'Barcelona'],
    'Puntuación': [8.5, 7.2, 9.1, 6.5, 7.8, 8.0]
}

df = pd.DataFrame(data)

df

  1. Ahora con estos datos se realizará las siguientes acciones
  2. Filtrar los datos para mostrar solo a las personas de más de 30 años.
  3. Agrupar los datos por ciudad y calcular la edad promedio.
  4. Proporcionar un resumen estadístico del DataFrame.
  5. Para ello se utilizará el siguiente código:
# Filtrar para mostrar solo a las personas de más de 30 años
mayores_de_30 = df[df['Edad'] > 30]

# Agrupar por ciudad y calcular la edad promedio
edad_promedio_por_ciudad = df.groupby('Ciudad')['Edad'].mean()

# Resumen estadístico del DataFrame
resumen_estadistico = df.describe()

mayores_de_30, edad_promedio_por_ciudad, resumen_estadistico


  1. El código fue verificado utilizando Colab de google y el cual puede ser visualizado de la siguiente forma utilizando Chat GPT


De la misma manera que en el primer caso, con los datos calculados se puede generar una grafica en el que se observa de forma mas sencilla los resultados obtenidos 


El gráfico de barras para la edad promedio por ciudad, indica Valencia tiene la edad promedio más alta, mientras que Sevilla tiene la más baja.



La grafica muestra la distribución de las edades de todas las personas, mostrando la frecuencia de cada rango de edad.

Conclusión:

Podemos concluir que utilizar Python tomando en cuenta las librerías de Numpy y Pandas facilita de gran manera el manejo de datos, el cálculo de los mismos, la estadística descriptiva y analítica, para ello además se utiliza pocas líneas de código. 






Comentarios

Entradas populares de este blog

Uso de Numpy, Pandas y ChatGPT para realizar un análisis estadístico de Calificaciones

PENSAMIENTO COMPUTACIONAL (PROBLEMA PRACTICO)