• Saltar al contenido principal
  • Skip to secondary menu
  • Saltar a la barra lateral principal
  • Saltar al pie de página
  • Inicio
  • Secciones
    • Ciencia de datos
    • Criptografía
    • Herramientas
    • Machine Learning
    • Noticias
    • Opinión
    • Productividad
    • Programación
      • JavaScript
      • Julia
      • Matlab
      • Python
      • R
  • Programación
    • JavaScript
    • Julia
    • Matlab
    • Python
    • R
  • Laboratorio
    • Encuestas: Tamaño de Muestra
    • Lotería: Probabilidad de Ganar
    • Reparto de Escaños (D’Hondt)
    • Tres en Raya con IA
  • Noticias
  • Boletín
  • Contacto
  • Tienda
    • Libros
    • Equipamiento de oficina
    • Equipamiento en movilidad
    • Tiendas afiliadas
      • AliExpress
      • Amazon
      • Banggood
      • GeekBuying
      • Lenovo

Analytics Lane

Ciencia e ingeniería de datos aplicada

  • Ciencia de datos
  • Machine Learning
  • Python
  • Pandas
  • NumPy
  • Matlab
  • Julia
  • Excel
  • IA Generativa

Análisis de datos con GPT en Pandas

diciembre 4, 2023 Por Daniel Rodríguez Deja un comentario
Tiempo de lectura: 5 minutos

La biblioteca Pandas de Python permite realizar análisis de datos complejos de una manera relativamente sencilla. Pero su uso requiere unos conocimientos básicos de programación y los métodos necesarios para realizar una operación compleja que no está al alcance de todo el mundo. Lo ideal, para que cualquier usuario pudiese realizar los análisis, sería poder usar lenguaje natural para realizar los análisis. Algo que se puede realizar con PandasAI y el API de OpenAI. Veamos cómo se pueden realizar análisis de datos con GPT en Pandas.

Instalación de PandasAI

Para poder trabajar con Grandes Modelos de Lenguaje (LLM por sus siglas en inglés, Large Language Models) como GTP de OpenAI se debe instalar la biblioteca PandasAI. Como es habitual en Python, la instalación se puede hacer con el comando pip, para lo que se deberá escribir en la terminal el siguiente comando.

pip install pandasai

Publicidad


Creación de una API Key en OpenAI

Una vez instalado PandasAI, para poder usar GPT, será necesario obtener una clave API. Para ello será necesario contar con una cuenta en OpenAI, iniciar sesión en el portal e ir a la sección API Keys. En donde se pulsará sobre el botón “+ Create new secret key”.

API key en OpenAI
Panel en el que se gestionan las API de OpenAI

El API Key se debe guardar en un lugar seguro ya que no se volverá a mostrar y es necesario para acceder a los modelos. Si no se tiene en OpenAI cuenta se puede crear una con un saldo promocional.

¡Nuevo video! Aprende a seleccionar datos en Pandas con .iloc y .loc
En Analytics Lane
¡Nuevo video! Aprende a seleccionar datos en Pandas con .iloc y .loc

Realizar análisis de datos con GPT usando lenguaje natural

Ahora, una vez instalado PandasAI y con una API de OpenAI se puede crear una conexión con el LLM importado la clase OpenAI y creando un objeto con el token. Lo que se puede conseguir con el siguiente código.

from pandasai.llm import OpenAI

# Instancia de LLM
llm = OpenAI(api_token="YOUR_API_TOKEN")

En donde se debe reemplazar YOUR_API_TOKEN por el token creado en la sección anterior. Tras lo cual se puede importar un conjunto de datos para analizar, cómo puede ser tips de Seaborn, y crear un objeto SmartDataframe con este.

La clase SmartDataframe de PandasAI requiere como parámetros el DataFrame con el conjunto de datos a analizar y la conexión al modelo que se creó anteriormente. Una vez creado el objeto, se puede solicitar cualquier análisis del conjunto mediante lenguaje natural usando el método chat(), por ejemplo, en el siguiente ejemplo se piden los cinco clientes que han dado una mayor propina.

import seaborn as sns
from pandasai import SmartDataframe

# Cargar datos de ejemplo
tips = sns.load_dataset("tips")

# Creación de un SmartDataframe
smartdf = SmartDataframe(tips, config={"llm": llm})

# Pedir información en lenguaje natura
smartdf.chat('What are the five biggest tips given by diners?')
     total_bill    tip   sex smoker   day    time  size
170       50.81  10.00  Male    Yes   Sat  Dinner     3
212       48.33   9.00  Male     No   Sat  Dinner     4
23        39.42   7.58  Male     No   Sat  Dinner     4
59        48.27   6.73  Male     No   Sat  Dinner     4
141       34.30   6.70  Male     No  Thur   Lunch     6

Un resultado que se puede comprobar fácilmente usando el método sort_values() y head() como se muestra a continuación.

tips.sort_values(by='tip', ascending=False).head()

Si se ejecutan ambos códigos se puede comprobar que el resultado es el mismo en ambos casos. Indicando que el modelo ha comprendido correctamente lo que tenía que hacer con los datos.

Publicidad


Análisis de datos con GPT en español

En la sección anterior se ha realizado el análisis de datos con GPT en inglés, pero el modelo funciona perfectamente en español u otros idiomas. Lo que facilita la realización de los análisis. Por ejemplo, se puede pedir en español la misma información, pero para seis clientes en lugar de cinco con el siguiente código.

smartdf.chat('¿Cuáles son las seis mayores propinas dadas por los comensales?')
     total_bill    tip     sex smoker   day    time  size
170       50.81  10.00    Male    Yes   Sat  Dinner     3
212       48.33   9.00    Male     No   Sat  Dinner     4
23        39.42   7.58    Male     No   Sat  Dinner     4
59        48.27   6.73    Male     No   Sat  Dinner     4
141       34.30   6.70    Male     No  Thur   Lunch     6
214       28.17   6.50  Female    Yes   Sat  Dinner     3

Con lo que se obtienen los mismos resultados que antes con el campo adicional. Ahora que se pueden aumentar la complejidad de las operaciones, en lugar de las seis mayores propinas se puede pedir las mayores, pero en base al porcentaje (no hay un campo porcentaje en la tabla) y ver que se obtiene como resultado.

smartdf.chat('¿Cuáles son las seis mayores propinas en porcentaje dadas por los comensales?')
     total_bill   tip     sex smoker  day    time  size  tip_percentage
172        7.25  5.15    Male    Yes  Sun  Dinner     2       71.034483
178        9.60  4.00  Female    Yes  Sun  Dinner     2       41.666667
67         3.07  1.00  Female    Yes  Sat  Dinner     1       32.573290
232       11.61  3.39    Male     No  Sat  Dinner     2       29.198966
183       23.17  6.50    Male    Yes  Sun  Dinner     4       28.053517
109       14.31  4.00  Female    Yes  Sat  Dinner     2       27.952481

En este caso se puede ver que el modelo ha creado el nuevo un nuevo campo y ordenado el resultado por este. Si se tiene dudas se puede comprobar el resultado con el siguiente código.

tips['tip_percentage'] = 100 * tips.tip / tips.total_bill
tips.sort_values(by='tip_percentage', ascending=False).head(6)

Observándose en ambos casos el mismo resultado.

Creación de gráficas

El modelo no se queda en análisis de datos básicos, también se puede usar para la creación de gráficos, solamente se deben indicar lo que se desea representar en lenguaje natural.

smartdf.chat('Necesito una figura en la que se muestre la propina total en función del número de comensales')
Figura creada automáticamente con PandasAI
La propina total en función del número de comensales creado con PandasAI

Publicidad


Conclusiones

En esta publicación se ha visto cómo usar el API de OpenAI en PandasAI para la realización de análisis de datos con GPT en Pandas mediante lenguaje natural. Una opción que permite realizar preguntas sobre conjuntos de datos de forma natural. A medida que se simplifique la integración de modelos LLM con las herramientas de análisis de datos estos podrán ayudar a los usuarios a comprender los datos de una forma más sencilla e intuitiva.

La biblioteca PandasAI permite usar los modelos LLM de OpenAI para realizar tareas complejas de forma sencilla. Un uso que se puede complementar con llamadas que se pueden realizar directamente a ChatGPT desde Python.

Imagen de Steve Buissinne en Pixabay

¿Te ha parecido de utilidad el contenido?

¡Puntúalo entre una y cinco estrellas!

Puntuación promedio 5 / 5. Votos emitidos: 2

Ya que has encontrado útil este contenido...

¡Síguenos en redes sociales!

¡Siento que este contenido no te haya sido útil!

¡Déjame mejorar este contenido!

Dime, ¿cómo puedo mejorar este contenido?

Publicaciones relacionadas

  • ¡Nuevo video! Aprende a seleccionar datos en Pandas con .iloc y .loc
  • ¡Nuevo video! Aprende a eliminar filas y columnas en Pandas sin errores
  • Nuevo video en el canal: Cómo eliminar duplicados de una lista en Python
  • Nuevo video en YouTube: Trabajando con archivos JSON en Python
  • Nuevo video: Leer y guardar archivos Excel y CSV en Python
  • Nuevo video: cómo activar copiar y pegar en VirtualBox fácilmente
  • Cómo extender el tamaño de un disco en Rocky Linux 9 usando growpart y LVM
  • Curiosidad: El origen del análisis exploratorio de datos y el papel de John Tukey
  • Cómo calcular el tamaño de la muestra para encuestas

Publicado en: Python Etiquetado como: ChatGPT, IA Generativa

Interacciones con los lectores

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

I accept the Terms and Conditions and the Privacy Policy

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Barra lateral principal

Suscríbete a nuestro boletín

Suscríbete al boletín semanal para estar al día de todas las publicaciones.

Política de Privacidad

Analytics Lane en redes sociales

  • Amazon
  • Bluesky
  • Facebook
  • GitHub
  • Instagram
  • Mastodon
  • Pinterest
  • RSS
  • Telegram
  • Tumblr
  • Twitter
  • YouTube

Publicidad

Entradas recientes

Cómo calcular el tamaño de la muestra para encuestas

septiembre 9, 2025 Por Daniel Rodríguez

Curiosidad: El origen del análisis exploratorio de datos y el papel de John Tukey

septiembre 4, 2025 Por Daniel Rodríguez

Cómo extender el tamaño de un disco en Rocky Linux 9 usando growpart y LVM

septiembre 2, 2025 Por Daniel Rodríguez

Publicidad

Es tendencia

  • Operaciones de filtrado de DataFrame con Pandas en base a los valores de las columnas publicado el mayo 10, 2019 | en Python
  • pandas Pandas: Obtener el nombre de las columnas y filas en Pandas publicado el diciembre 7, 2020 | en Python
  • pandas Pandas: Cómo iterar sobre las filas de un DataFrame en Pandas publicado el septiembre 13, 2021 | en Python
  • Sistema de ecuaciones Sistemas de ecuaciones lineales con numpy publicado el octubre 29, 2018 | en Python
  • Método del codo (Elbow method) para seleccionar el número óptimo de clústeres en K-means publicado el junio 9, 2023 | en Ciencia de datos

Publicidad

Lo mejor valorado

4.9 (24)

Seleccionar filas y columnas en Pandas con iloc y loc

4.6 (16)

Archivos JSON con Python: lectura y escritura

4.4 (14)

Ordenación de diccionarios en Python mediante clave o valor

4.7 (13)

Operaciones de filtrado de DataFrame con Pandas en base a los valores de las columnas

4.5 (10)

Diferencias entre var y let en JavaScript

Publicidad

Comentarios recientes

  • Pepe en Probabilidad básica: cómo entender el azar en nuestra vida diaria
  • CARLOS ARETURO BELLO CACERES en Justicio: La herramienta gratuita de IA para consultas legales
  • Piera en Ecuaciones multilínea en Markdown
  • Daniel Rodríguez en Tutorial de Mypy para Principiantes
  • Javier en Tutorial de Mypy para Principiantes

Publicidad


Footer

Analytics Lane

  • Acerca de Analytics Lane
  • Boletín de noticias
  • Contacto
  • Libros
  • Lo más popular
  • Noticias
  • Tienda
  • Tiendas afiliadas

Secciones

  • Ciencia de datos
  • Criptografía
  • Herramientas
  • Machine Learning
  • Opinión
  • Productividad
  • Programación
  • Reseñas

Sobre de Analytics Lane

En Analytics Lane tratamos de explicar los principales conceptos de la ciencia e ingeniería de datos con un enfoque práctico. Los principales temas tratados son ciencia de datos, ingeniería de datos, inteligencia artificial, machine learning, deep learning y criptografía. Además, también se habla de los principales lenguajes de programación y herramientas utilizadas por los científicos e ingenieros de datos.

Copyright © 2018-2025 Analytics Lane ·Términos y condiciones ·Política de Cookies ·Política de Privacidad ·Herramientas de privacidad ·Contacto