Generando Data Sets con ChatGPT

0

 


Obtener un Data Set con ChatGPT3.5: Guía Práctica


Cabe mencionar que se utilizo la versión ChatGpt 3.5 par este trabajo.

Necesito crear un programa en python el cual me genere datos aleatorios de estudiantes con los siguientes datos: nombres, edad,genero,asignatura,grupo, parcial , final,trabajos,participacion,nota final,aprobado. todo esto guardado en un archivo csv.

Aquí tienes un programa simple en Python que genera datos aleatorios de estudiantes y los guarda en un archivo CSV:

import csv
import random

# Función para generar datos aleatorios de estudiantes
def generar_datos_estudiantes(cantidad):
    nombres = ["Juan", "Maria", "Carlos", "Ana", "Pedro", "Laura", "Diego", "Sofia", "Luis", "Elena"]
    generos = ["Masculino", "Femenino"]
    asignaturas = ["Matemáticas", "Ciencias", "Historia", "Literatura", "Inglés"]
    grupos = ["A", "B", "C", "D"]
   
    datos_estudiantes = []
   
    for _ in range(cantidad):
        nombre = random.choice(nombres)
        edad = random.randint(18, 25)
        genero = random.choice(generos)
        asignatura = random.choice(asignaturas)
        grupo = random.choice(grupos)
        parcial = random.randint(0, 100)
        final = random.randint(0, 100)
        trabajos = random.randint(0, 50)
        participacion = random.randint(0, 50)
       
        nota_final = 0.3 * parcial + 0.4 * final + 0.2 * trabajos + 0.1 * participacion
        aprobado = "Aprobado" if nota_final >= 60 else "Reprobado"
       
        estudiante = [nombre, edad, genero, asignatura, grupo, parcial, final, trabajos, participacion, nota_final, aprobado]
        datos_estudiantes.append(estudiante)
   
    return datos_estudiantes

# Función para guardar datos en un archivo CSV
def guardar_en_csv(datos, nombre_archivo):
    with open(nombre_archivo, 'w', newline='') as archivo_csv:
        escritor_csv = csv.writer(archivo_csv)
        # Escribir encabezados
        encabezados = ["Nombre", "Edad", "Género", "Asignatura", "Grupo", "Parcial", "Final", "Trabajos", "Participación", "Nota Final", "Aprobado"]
        escritor_csv.writerow(encabezados)
        # Escribir datos
        escritor_csv.writerows(datos)

# Generar 100 datos de estudiantes y guardar en un archivo CSV
datos_estudiantes = generar_datos_estudiantes(100)
guardar_en_csv(datos_estudiantes, 'datos_estudiantes.csv')

print("Datos generados y guardados en 'datos_estudiantes.csv'")

Este programa crea una lista de datos ficticios de estudiantes con nombres, edades, géneros, asignaturas, grupos, notas de parciales, finales, trabajos, participación y calcula la nota final y si aprobaron o no. Luego, guarda estos datos en un archivo CSV llamado 'datos_estudiantes.csv'. Puedes ajustar la cantidad de estudiantes cambiando el valor en la función "generar_datos_estudiantes".

Para realizar un análisis de datos en Python sobre la información generada en el archivo CSV ('datos_estudiantes.csv'), puedes utilizar bibliotecas como Pandas y Matplotlib para realizar análisis estadísticos y visualizaciones. A continuación, te proporcionaré un ejemplo básico de cómo puedes hacerlo:

Primero, asegúrate de tener instaladas las bibliotecas necesarias. Puedes instalarlas utilizando el siguiente comando:

pip install pandas matplotlib

Luego, puedes utilizar el siguiente código para cargar los datos, realizar un análisis básico y crear algunas visualizaciones:

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

# Cargar datos desde el archivo CSV
df = pd.read_csv('datos_estudiantes.csv')

# 1. Análisis descriptivo

# Distribucion de edades y genero
plt.figure(figsize=(12, 6))
sns.histplot(df, x='Edad', hue='Género', bins=20, kde=True, palette='Set2')
plt.title('Distribución de Edades por Género')
plt.xlabel('Edad')
plt.ylabel('Frecuencia')
plt.grid(axis='y', linestyle='--', alpha=0.7)
plt.show()

# Distribucion de estudiantes por asignatura y grupo
plt.figure(figsize=(14, 8))
sns.countplot(data=df, x='Asignatura', hue='Grupo', palette='viridis')
plt.title('Distribución de Estudiantes por Asignatura y Grupo')
plt.xlabel('Asignatura')
plt.ylabel('Cantidad de Estudiantes')
plt.show()

# Resumen estadístico de las puntuaciones
puntuaciones = df[['Parcial', 'Final', 'Trabajos', 'Participación']]
print("Resumen estadístico de las puntuaciones:")
print(puntuaciones.describe())

# 2. Rendimiento académico

# Promedio de notas finales por asignatura y grupo
promedio_notas_finales = df.groupby(['Asignatura', 'Grupo'])['Nota Final'].mean().reset_index()
print("\nPromedio de Notas Finales por Asignatura y Grupo:")
print(promedio_notas_finales)

# Porcentaje de aprobados y reprobados
porcentaje_aprobados_reprobados = df['Aprobado'].value_counts(normalize=True) * 100
print("\nPorcentaje de Aprobados y Reprobados:")
print(porcentaje_aprobados_reprobados)

# 3. Correlaciones

# Relación entre participación y notas finales
plt.figure(figsize=(10, 6))
sns.scatterplot(x='Participación', y='Nota Final', data=df, hue='Género', palette='coolwarm')
plt.title('Relación entre Participación y Notas Finales por Género')
plt.xlabel('Participación')
plt.ylabel('Nota Final')
plt.show()

# Comparación de rendimiento entre diferentes asignaturas
plt.figure(figsize=(12, 6))
sns.boxplot(x='Asignatura', y='Nota Final', data=df, palette='pastel')
plt.title('Comparación de Rendimiento entre Asignaturas')
plt.xlabel('Asignatura')
plt.ylabel('Nota Final')
plt.show()

# 4. Análisis adicional

# Detección de posibles tendencias o patrones inusuales
# Puedes usar visualizaciones adicionales o análisis estadísticos específicos aquí.

# Análisis de rendimiento por género
rendimiento_por_genero = df.groupby('Género')['Nota Final'].mean()
print("\nPromedio de Notas Finales por Género:")
print(rendimiento_por_genero)

Este código utiliza Pandas para cargar los datos en un DataFrame y realizar un análisis estadístico básico. Luego, utiliza Matplotlib para crear visualizaciones, como un histograma de las notas finales y un gráfico de barras que muestra la cantidad de estudiantes aprobados y reprobados.

Puedes personalizar y extender este análisis según tus necesidades específicas. Además, ten en cuenta que estos son ejemplos básicos, y dependiendo de la complejidad de tus datos y los objetivos del análisis, podrías necesitar realizar análisis más detallados.

Este código utiliza Seaborn para visualizar datos de manera más avanzada y realiza análisis específicos según las categorías mencionadas en cada sección. Puedes ajustar y personalizar el código según tus necesidades y agregar análisis adicionales según sea necesario.

Presentación de las graficas generadas:

1. Análisis descriptivo

Distribución de edades y genero


Distribución de estudiantes por asignatura y grupo



Resumen estadístico de las puntuaciones

        




2. Rendimiento académico

Promedio de notas finales por asignatura y grupo



Porcentaje de aprobados y reprobados



3. Correlaciones 

Relación entre participación y notas finales



Comparación de rendimiento entre diferentes asignaturas

        


4. Análisis adicional

Detección de posibles tendencias o patrones inusuales

Puedes usar visualizaciones adicionales o análisis estadísticos específicos aquí.

Análisis de rendimiento por género








Sin comentarios