Python para analisis de datos: guia para principiantes
Si estas haciendo tu tesis, proyecto de clase o investigacion en la UNAH, UNITEC, UTH o CEUTEC, es muy probable que necesites analizar datos. Aunque Excel funciona para lo basico, Python te permite manejar conjuntos de datos mas grandes, automatizar procesos y generar graficos de calidad profesional. Aqui aprenderás lo esencial para empezar.
Por que Python y no solo Excel
| Criterio | Excel | Python |
|---|---|---|
| Cantidad de datos | Se vuelve lento con mas de 50,000 filas | Maneja millones de filas sin problema |
| Reproducibilidad | Dificil de replicar pasos manuales | El codigo documenta todo el proceso |
| Graficos | Limitados y poco personalizables | Control total sobre cada elemento visual |
| Automatizacion | Macros complejas y fragiles | Scripts reutilizables y claros |
| Costo | Licencia de Office | Gratuito y open source |
En investigacion academica, la reproducibilidad es clave. Con Python, tu asesor puede ejecutar tu codigo y obtener exactamente los mismos resultados. Con Excel, tendria que seguir instrucciones manuales paso a paso.
Instalar Python para analisis de datos
La forma mas rapida 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 menu de Anaconda
- Crea un nuevo notebook y empieza a escribir codigo
Jupyter Notebook es ideal para investigacion porque combina codigo, resultados y texto explicativo en un solo documento. Muchos asesores aceptan el notebook como parte del informe.
Pandas: tu herramienta principal
Pandas es la libreria 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: graficos profesionales
Matplotlib es la base para graficos en Python. Seaborn agrega estilos mas atractivos con menos codigo.
Grafico 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()
Grafico de dispersion (correlacion)
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()
Grafico 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 imagenes. Esto asegura que se vean nitidas impresas, algo importante si tu tesis va en formato fisico.
Analisis estadistico basico
Para la mayoria de proyectos universitarios, necesitaras 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 estadisticamente significativo. Eso es lo que la mayoria de asesores buscan en tu analisis.
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(), graficos exploratorios - Analizar — Pruebas estadisticas segun tus hipotesis
- Visualizar — Graficos finales con formato profesional
- Exportar — Guardar graficos en PNG de alta resolucion
En Folium Labs hacemos el analisis de datos de tu investigacion — desde la limpieza de datos hasta las pruebas estadisticas y graficos listos para tu tesis. Hablemos sobre tu proyecto.
Errores comunes
- No limpiar los datos antes de analizar — Datos sucios producen resultados invalidos
- Usar el grafico equivocado — Barras para frecuencias, histogramas para distribuciones, dispersion para correlaciones
- Ignorar los valores nulos — Decide si los eliminas, los reemplazas o los excluyes del analisis
- No reportar el p-valor — Sin significancia estadistica, tu resultado es anecdotico
- Graficos sin titulo ni etiquetas — Todo grafico debe tener titulo, etiquetas de ejes y fuente
Recursos gratuitos para aprender mas
| Recurso | Idioma | Nivel |
|---|---|---|
| Kaggle Learn (pandas, visualization) | Ingles | Principiante |
| Google Colab (notebooks en la nube) | Interfaz en español | Todos |
| W3Schools Python | Ingles | Principiante |
| Documentacion oficial de pandas | Ingles | Intermedio |
Google Colab es especialmente util si tu computadora es limitada: ejecuta Python en la nube, gratis, sin instalar nada.
Necesitas ayuda con el analisis estadistico de tu tesis? Nuestro equipo domina Python, SPSS y R para investigacion academica. Conoce nuestros servicios.
Necesitas ayuda con tu proyecto?
Nuestro equipo puede encargarse de tu tesis, investigacion o proyecto tecnologico.
Cotiza tu proyecto