# Importar librerías necesarias
import pandas as pd
import matplotlib.pyplot as plt

# Cargar el archivo CSV en un DataFrame
df = pd.read_csv("D:/Documents/CURSOS1/R STUDIO/r-basic-master/data/run.csv")

# Pregunta 1: Número de estudiantes
numero_estudiantes = df.shape[0]
print("\nPregunta No 1")
## 
## Pregunta No 1
print(f"El número total de estudiantes que formaron parte del estudio es: {numero_estudiantes}\n")
## El número total de estudiantes que formaron parte del estudio es: 92
# Gráfico Pregunta 1
plt.figure(figsize=(6, 4))
plt.bar(['Estudiantes'], [numero_estudiantes], color='skyblue')
plt.title('Número total de estudiantes en el estudio', fontsize=12)
plt.ylabel('Número de estudiantes', fontsize=10)
plt.grid(axis='y', linestyle='--', alpha=0.7)
plt.tight_layout()  # Evitar superposición
plt.show()

# Pregunta 2: Conteo de género
conteo_genero = df['genero'].value_counts()
print("\nPregunta No 2")
## 
## Pregunta No 2
print(conteo_genero, "\n")
## genero
## H    57
## M    35
## Name: count, dtype: int64
# Gráfico Pregunta 2
plt.figure(figsize=(6, 4))
conteo_genero.plot(kind='bar', color=['lightblue', 'salmon'])
plt.title('Número de hombres y mujeres', fontsize=12)
plt.ylabel('Número de individuos', fontsize=10)
plt.grid(axis='y', linestyle='--', alpha=0.7)
plt.tight_layout()
plt.show()

# Pregunta 3: Variación del pulso según el ejercicio
df['variacion_pulso'] = df['pulso.despues'] - df['pulso.antes']
df['porcentaje_variacion'] = (df['variacion_pulso'] / df['pulso.antes']) * 100

promedio_variacion_si = df[df['hace.deporte'] == 'si']['porcentaje_variacion'].mean()
promedio_variacion_no = df[df['hace.deporte'] == 'no']['porcentaje_variacion'].mean()

print("\nPregunta No 3")
## 
## Pregunta No 3
print(f"Porcentaje medio de variación del pulso para los que hacen ejercicio: {promedio_variacion_si:.2f}%")
## Porcentaje medio de variación del pulso para los que hacen ejercicio: 26.22%
print(f"Porcentaje medio de variación del pulso para los que no hacen ejercicio: {promedio_variacion_no:.2f}%")
## Porcentaje medio de variación del pulso para los que no hacen ejercicio: 0.21%
print(f"Diferencia en el porcentaje medio de variación del pulso: {promedio_variacion_si - promedio_variacion_no:.2f}%\n")
## Diferencia en el porcentaje medio de variación del pulso: 26.01%
# Gráfico Pregunta 3
plt.figure(figsize=(6, 4))
plt.bar(['Hacen Deporte', 'No Hacen Deporte'], [promedio_variacion_si, promedio_variacion_no], color=['lightgreen', 'coral'])
plt.title('Porcentaje medio de variación del pulso', fontsize=12)
plt.ylabel('Porcentaje', fontsize=10)
plt.grid(axis='y', linestyle='--', alpha=0.7)
plt.tight_layout()
plt.show()

# Pregunta 4: Variación del pulso por género (haciendo ejercicio)
df_ejercicio = df[df['hace.deporte'] == 'si'].copy()
promedio_variacion_genero = df_ejercicio.groupby('genero')['porcentaje_variacion'].mean()

print("\nPregunta No 4")
## 
## Pregunta No 4
print(promedio_variacion_genero, "\n")
## genero
## H    19.176886
## M    41.572181
## Name: porcentaje_variacion, dtype: float64
# Gráfico Pregunta 4
plt.figure(figsize=(6, 4))
promedio_variacion_genero.plot(kind='bar', color=['lightblue', 'salmon'])
plt.title('PMV del pulso por género (hacen ejercicio)', fontsize=12)
plt.ylabel('Porcentaje', fontsize=10)
plt.grid(axis='y', linestyle='--', alpha=0.7)
plt.tight_layout()
plt.show()

# Pregunta 5: Variación del pulso por fumar (no hacen ejercicio)
df = pd.read_csv("D:/Documents/CURSOS1/R STUDIO/r-basic-master/data/run.csv")
datos_no_ejercicio = df[df['hace.deporte'] == 'no'].copy()
datos_no_ejercicio['PMV'] = ((datos_no_ejercicio['pulso.despues'] - datos_no_ejercicio['pulso.antes']) / datos_no_ejercicio['pulso.antes']) * 100
resultado_fuma = datos_no_ejercicio.groupby('fuma')['PMV'].mean().reset_index()

print("\nPregunta No 5")
## 
## Pregunta No 5
print(resultado_fuma)
##   fuma       PMV
## 0   no -0.064761
## 1   si  0.912219
# Gráfico Pregunta 5
plt.figure(figsize=(6, 4))  # Tamaño ajustado
plt.bar(resultado_fuma['fuma'], resultado_fuma['PMV'], color=['lightcoral', 'lightgreen'])
plt.title('PMV del pulso por hábito de fumar (no hacen ejercicio)', fontsize=10)
plt.ylabel('Porcentaje', fontsize=10)
plt.grid(axis='y', linestyle='--', alpha=0.7)
plt.tight_layout()
plt.show()

# Pregunta 6: Variación del pulso por tipo de actividad física
df['PMV'] = ((df['pulso.despues'] - df['pulso.antes']) / df['pulso.antes']) * 100
resultado_actividad = df.groupby('tipo.actividad')['PMV'].mean().reset_index()

print("\nPregunta No 6")
## 
## Pregunta No 6
print(resultado_actividad)
##   tipo.actividad        PMV
## 0        intensa   1.347475
## 1       moderada  14.015695
## 2           nula  12.500000
## 3          suave   3.747241
# Gráfico Pregunta 6
plt.figure(figsize=(6, 4))  # Tamaño ajustado
plt.bar(resultado_actividad['tipo.actividad'], resultado_actividad['PMV'], color='skyblue')
plt.title('PMV del pulso según tipo de actividad física', fontsize=10)
plt.ylabel('Porcentaje', fontsize=10)
plt.xticks(rotation=45, ha='right')
## ([0, 1, 2, 3], [Text(0, 0, 'intensa'), Text(1, 0, 'moderada'), Text(2, 0, 'nula'), Text(3, 0, 'suave')])
plt.grid(axis='y', linestyle='--', alpha=0.7)
plt.tight_layout()
plt.show()