Python para análisis de datos: guía para principiantes
Si estás haciendo tu tesis, proyecto de clase o investigación en la UNAH, UNITEC, UTH o CEUTEC, es muy probable que necesites analizar datos. Aunque Excel funciona para lo básico, Python te permite manejar conjuntos de datos más grandes, automatizar procesos y generar gráficos de calidad profesional. Aquí aprenderás lo esencial para empezar.
Por qué Python y no solo Excel
| Criterio | Excel | Python |
|---|---|---|
| Cantidad de datos | Se vuelve lento con más de 50,000 filas | Maneja millones de filas sin problema |
| Reproducibilidad | Difícil de replicar pasos manuales | El código documenta todo el proceso |
| Gráficos | Limitados y poco personalizables | Control total sobre cada elemento visual |
| Automatización | Macros complejas y frágiles | Scripts reutilizables y claros |
| Costo | Licencia de Office | Gratuito y open source |
En investigación académica, la reproducibilidad es clave. Con Python, tu asesor puede ejecutar tu código y obtener exactamente los mismos resultados. Con Excel, tendría que seguir instrucciones manuales paso a paso.
Instalar Python para análisis de datos
La forma más rápida es instalar Anaconda, que incluye Python, pandas, matplotlib y Jupyter Notebook en un solo paquete.
Pasos:
- Descarga Anaconda desde anaconda.com (gratis)
- Instala con las opciones por defecto
- Abre Jupyter Notebook desde el menú de Anaconda
- Crea un nuevo notebook y empieza a escribir código
Jupyter Notebook es ideal para investigación porque combina código, resultados y texto explicativo en un solo documento. Muchos asesores aceptan el notebook como parte del informe.
Pandas: tu herramienta principal
Pandas es la librería de Python para manipular datos tabulares (como los que tienes en Excel). Estos son los comandos esenciales:
Cargar datos
import pandas as pd
# Cargar un archivo CSV (exportado desde Excel o Google Sheets)
df = pd.read_csv("encuesta_estudiantes.csv")
# Cargar directamente desde Excel
df = pd.read_excel("datos_investigacion.xlsx")
# Ver las primeras 5 filas
df.head()
Explorar los datos
# Cuantas filas y columnas tiene
df.shape
# Tipos de datos de cada columna
df.dtypes
# Resumen estadistico (media, mediana, desviacion estandar)
df.describe()
# Contar valores nulos por columna
df.isnull().sum()
Filtrar y agrupar
# Filtrar estudiantes de ingenieria
ingenieria = df[df["carrera"] == "Ingenieria en Sistemas"]
# Agrupar por carrera y calcular promedio
promedios = df.groupby("carrera")["nota_final"].mean()
# Contar frecuencias de una variable categorica
df["genero"].value_counts()
Limpiar datos
# Eliminar filas con valores nulos
df_limpio = df.dropna()
# Reemplazar valores nulos con la media
df["edad"].fillna(df["edad"].mean(), inplace=True)
# Eliminar duplicados
df = df.drop_duplicates()
Matplotlib y Seaborn: gráficos profesionales
Matplotlib es la base para gráficos en Python. Seaborn agrega estilos más atractivos con menos código.
Gráfico de barras
import matplotlib.pyplot as plt
carreras = df["carrera"].value_counts()
carreras.plot(kind="bar", color="#2563eb")
plt.title("Distribucion de estudiantes por carrera")
plt.xlabel("Carrera")
plt.ylabel("Cantidad")
plt.xticks(rotation=45)
plt.tight_layout()
plt.savefig("distribucion_carreras.png", dpi=300)
plt.show()
Histograma
plt.hist(df["nota_final"], bins=10, color="#16a34a", edgecolor="white")
plt.title("Distribucion de notas finales")
plt.xlabel("Nota")
plt.ylabel("Frecuencia")
plt.savefig("histograma_notas.png", dpi=300)
plt.show()
Gráfico de dispersión (correlación)
plt.scatter(df["horas_estudio"], df["nota_final"], alpha=0.6)
plt.title("Relacion entre horas de estudio y nota final")
plt.xlabel("Horas de estudio semanales")
plt.ylabel("Nota final")
plt.savefig("correlacion_estudio.png", dpi=300)
plt.show()
Gráfico de pastel
df["genero"].value_counts().plot(
kind="pie",
autopct="%1.1f%%",
colors=["#2563eb", "#f59e0b", "#10b981"]
)
plt.title("Distribucion por genero")
plt.ylabel("")
plt.savefig("distribucion_genero.png", dpi=300)
plt.show()
Siempre usa dpi=300 al guardar imágenes. Esto asegura que se vean nítidas impresas, algo importante si tu tesis va en formato físico.
Análisis estadístico básico
Para la mayoría de proyectos universitarios, necesitarás estas pruebas:
from scipy import stats
# Correlacion de Pearson
r, p_value = stats.pearsonr(df["horas_estudio"], df["nota_final"])
print(f"Correlacion: {r:.3f}, p-valor: {p_value:.4f}")
# Prueba t de Student (comparar dos grupos)
grupo_a = df[df["metodo"] == "tradicional"]["nota_final"]
grupo_b = df[df["metodo"] == "innovador"]["nota_final"]
t_stat, p_value = stats.ttest_ind(grupo_a, grupo_b)
print(f"t = {t_stat:.3f}, p = {p_value:.4f}")
# Chi-cuadrado (variables categoricas)
tabla = pd.crosstab(df["genero"], df["aprobado"])
chi2, p, dof, expected = stats.chi2_contingency(tabla)
print(f"Chi2 = {chi2:.3f}, p = {p:.4f}")
Si el p-valor es menor a 0.05, el resultado es estadísticamente significativo. Eso es lo que la mayoría de asesores buscan en tu análisis.
Flujo de trabajo completo
- Recolectar datos — Google Forms, encuesta presencial, base de datos existente
- Exportar a CSV — Desde Google Sheets o Excel
- Cargar en pandas —
pd.read_csv() - Limpiar — Nulos, duplicados, formatos incorrectos
- Explorar —
describe(),value_counts(), gráficos exploratorios - Analizar — Pruebas estadísticas según tus hipótesis
- Visualizar — Gráficos finales con formato profesional
- Exportar — Guardar gráficos en PNG de alta resolución
En Folium Labs hacemos el análisis de datos de tu investigación — desde la limpieza de datos hasta las pruebas estadísticas y gráficos listos para tu tesis. Hablemos sobre tu proyecto.
Errores comunes
- No limpiar los datos antes de analizar — Datos sucios producen resultados inválidos
- Usar el gráfico equivocado — Barras para frecuencias, histogramas para distribuciones, dispersión para correlaciones
- Ignorar los valores nulos — Decide si los eliminas, los reemplazas o los excluyes del análisis
- No reportar el p-valor — Sin significancia estadística, tu resultado es anecdótico
- Gráficos sin título ni etiquetas — Todo gráfico debe tener título, etiquetas de ejes y fuente
Recursos gratuitos para aprender más
| Recurso | Idioma | Nivel |
|---|---|---|
| Kaggle Learn (pandas, visualization) | Inglés | Principiante |
| Google Colab (notebooks en la nube) | Interfaz en español | Todos |
| W3Schools Python | Inglés | Principiante |
| Documentación oficial de pandas | Inglés | Intermedio |
Google Colab es especialmente útil si tu computadora es limitada: ejecuta Python en la nube, gratis, sin instalar nada.
¿Necesitas ayuda con el análisis estadístico de tu tesis? Nuestro equipo domina Python, SPSS y R para investigación académica. Conoce nuestros servicios.
¿Necesitas ayuda con tu proyecto?
Nuestro equipo puede encargarse de tu tesis, investigación o proyecto tecnológico.