Presentando PandasAI Una biblioteca de análisis de datos impulsada por GenAI

PandasAI Biblioteca de análisis de datos impulsada por GenAI.

Introducción

Ha habido recientes avances y descubrimientos en el campo de la Inteligencia Artificial Generativa que están causando interrupciones en el campo de los datos. Las empresas están tratando de ver cómo aprovechar al máximo estas innovaciones, como ChatGPT. Esto ayudará a cualquier negocio a obtener una ventaja competitiva. Una nueva innovación de vanguardia está introduciendo una biblioteca de análisis de datos impulsada por GenAI a la biblioteca regular de Pandas conocida como “PandasAI”. Esto ha sido realizado por OpenAI. A diferencia de otras áreas de GenAI, PandasAI aplica la tecnología de GenAI a la herramienta de análisis Pandas.

Como su nombre sugiere, aplica directamente la inteligencia artificial a la biblioteca tradicional de Pandas. La biblioteca de Pandas se ha vuelto muy popular en el campo de los datos con Python en tareas como el preprocesamiento y la visualización de datos, y esta innovación acaba de hacerla mejor.

Objetivos de aprendizaje

  • Comprender el nuevo PandasAI
  • Usar PandasAI con consultas conversacionales
  • Crear gráficos con PandasAI
  • Un vistazo a PandasAI y su backend (GenAI)

Este artículo fue publicado como parte del Data Science Blogathon.

¿Qué es PandasAI?

PandasAI es una biblioteca de Python que utiliza modelos de IA generativa para llevar a cabo tareas con pandas. Es una biblioteca que integra capacidades de inteligencia artificial generativa utilizando la ingeniería de prompts para hacer que los data frames de Pandas sean conversacionales. Cuando recordamos Pandas, nos viene a la mente el análisis y la manipulación de datos. Con PandasAI, intentamos mejorar la productividad de nuestros Pandas con el beneficio de GenAI.

¿Por qué usar PandasAI?

Con la ayuda de la inteligencia artificial generativa, todos necesitamos dar indicaciones conversacionales al conjunto de datos. Esto viene con la ventaja de eliminar la necesidad de aprender o entender código complejo. El científico de datos puede consultar el conjunto de datos simplemente hablando con él en lenguaje humano natural y obtener resultados. Esto ahorra tiempo en el preprocesamiento y análisis. Esta es la nueva revolución donde los programadores no necesitan escribir código. Solo necesitan decir lo que tienen en mente y ver cómo se llevan a cabo sus instrucciones. ¡Incluso las personas sin conocimientos técnicos ahora pueden construir sistemas sin escribir ningún código complejo!

¿Cómo funciona PandasAI?

Antes de ver cómo usar PandasAI, veamos cómo funciona. Hemos mencionado el término “Inteligencia Artificial Generativa” varias veces aquí. Sirve como la tecnología detrás de la implementación de PandasAI. La IA generativa (GenAI) es un subconjunto de la inteligencia artificial que puede producir una amplia gama de tipos de datos, incluyendo texto, audio, video, imágenes y modelos 3D. Esto se logra identificando patrones en los datos ya recopilados y explotándolos para crear salidas novedosas y distintivas.

Otra cosa a tener en cuenta es el uso de modelos de lenguaje grandes (LLMs, por sus siglas en inglés). PandasAI ha sido entrenado en LLMs que son modelos que consisten en una red neuronal artificial (ANN, por sus siglas en inglés) con muchos parámetros (desde decenas de millones hasta incluso miles de millones). Todo esto ayuda al modelo detrás de PandasAI a poder tomar instrucciones humanas y tokenizarlas antes de interpretarlas. PandasAI también ha sido diseñado para manejar modelos de LangChain, lo que facilita la creación de aplicaciones de LLM.

Empezando con Pandas AI

Ahora veamos cómo usar PandasAI. Veremos dos enfoques para usar PandasAI. Primero, usando modelos de LangChain y luego una implementación directa.

Usando modelos de LangChain

Para usar modelos de LangChain, primero debes instalar el paquete Langchain:

pip install langchain

Luego, podemos instanciar un objeto LangChain:

from pandasai import PandasAI
from langchain.llms import OpenAI

langchain_llm = OpenAI(openai_api_key="mi-clave-de-api-de-openai")
pandasai = PandasAI(llm=langchain_llm)

Su entorno está listo ahora, y PandasAI automáticamente usará un llm de LangChain y lo convertirá en un llm de PandasAI.

Implementación directa (sin LangChain)

Este artículo utiliza este segundo enfoque instalando PandasAI sin usar LangChain. Al escribir este artículo, Colab no tiene preinstalado PandasAI como Pandas. Por eso necesitamos comenzar instalándolo.

pip install pandasai

Otra cosa vital a tener en cuenta es que necesitas una clave de API de OpenAI para usar PandaAI. Una clave de API se puede crear con una cuenta en la plataforma de OpenAI. Visita aquí para crear una clave.

Recuerda guardar la clave de forma segura para uso futuro, ya que volver al sitio no te dará acceso para copiar la clave. También oculté mi clave de API al público para administrar mis créditos. ¡Haz lo mismo!

Nota: Con una cuenta gratuita de OpenAI, es posible que no puedas trazar gráficos con PandasAI de manera conveniente debido a restricciones de 3 solicitudes por minuto. Esto es para administrar la alta demanda del sistema y mantenerlo maximizado.

Importando Dependencias

Continuemos importando nuestras dependencias.

import pandas as pd

# PandasAI
from pandasai import PandasAI

# Para gráficos
import seaborn as sns

# conjunto de datos incorporado iris de seaborn
iris = sns.load_dataset('iris')

# Viendo las primeras filas
iris.head()

A continuación, importamos OpenAI de Pandasai, que instalamos anteriormente. Asegúrate de insertar tu clave de API reemplazando INSERT_YOUR_API_KEY_HERE antes de ejecutar el código, como se muestra a continuación.

# DataFrame de muestra
df = iris

# Instanciando un LLM
from pandasai.llm.openai import OpenAI

# Asignando clave de API
llm = OpenAI(api_token="INSERT_YOUR_API_KEY_HERE")

# Llamando a PandasAI
pandas_ai = PandasAI(llm)

Consulta Conversacional

Ahora veamos algunas indicaciones de texto sobre el conjunto de datos iris.

Ejemplo 1

prompt=’¿Cuál es la especie más común?’

# Ejecutando indicación de PandasAI
pandas_ai.run(df, prompt='¿Cuál es la especie más común?')

¡Oh, la especie más común es en realidad setosa!

Ejemplo 2

prompt=’¿Cuál es el promedio de sepal_length?’

# Llamando a PandasAI
pandas_ai = PandasAI(llm)

# Ejecutando indicación de PandasAI
pandas_ai.run(df, prompt='¿Cuál es el promedio de sepal_length?')

El promedio de la longitud del sépalo del conjunto de datos es 5.84.

Ejemplo 3

prompt=’¿Cuál es el promedio de sepal_width?’

# Llamando a PandasAI
pandas_ai = PandasAI(llm)

# Ejecutando indicación de PandasAI
pandas_ai.run(df, prompt='¿Cuál es el promedio de sepal_width?')

El ancho promedio del sépalo es 3.0573333333333337.

Ejemplo 4

prompt=’¿Cuál es la longitud del pétalo más común?’

# Llamando a PandasAI
pandas_ai = PandasAI(llm)

# Ejecutando indicación de PandasAI
pandas_ai.run(df, prompt='¿Cuál es la longitud del pétalo más común?')

Según los datos proporcionados, la longitud del pétalo más común es 1.4.

Trabajando con Gráficos en PandasAI

¡Sí, no solo podemos generar texto! También podemos generar gráficos y diagramas usando PandasAI. Esto requerirá una clave de API paga, de lo contrario es probable que genere un Error de Límite de Tasa. Puedes intentar ejecutar tus indicaciones de vez en cuando. Entre intervalos de 20 segundos, o simplemente puedes obtener un plan pago.

Manejo de Error de Límite de Tasa en PandasAI

Es probable que encuentres un RateLimitError cuando comiences a generar gráficos o diagramas. Esto se encontrará en aquellos que usen una clave de API gratuita. Una solución es obtener un plan de pago. Esto te proporciona más crédito y recursos para realizar tareas exigentes. Pero si solo quieres experimentar o solo tienes acceso a una clave gratuita, debes regular cómo ejecutas tu código manualmente. Se espera que ejecutes solo comandos limitados con una cuenta gratuita con intervalos de aproximadamente 20 segundos entre comandos. Esto te permite ejecutar tu código en intervalos de 20 segundos. Esto es para gestionar el servidor entre los usuarios debido a la alta demanda.

Ejemplo 1

Prompt = ’“Graficar el histograma de las entradas.”

# Ejecutando el comando de PandasAI
respuesta = pandas_ai.run(
    df,
    "Graficar el histograma de las entradas",
)
print(respuesta)

Claro, aquí tienes un histograma de las entradas en el conjunto de datos. Muestra la distribución de valores para cada variable, incluyendo longitud del sépalo, ancho del sépalo, longitud del pétalo, ancho del pétalo y especie. El histograma es una forma útil de visualizar los datos y ver cualquier patrón o tendencia que pueda existir.

Ejemplo 2

Prompt = ‘Realizar un diagrama de dispersión de longitud_del_sépalo y ancho_del_sépalo’

# Ejecutando el comando de Pandas AI
respuesta = pandas_ai.run(
    df,
    "Realizar un diagrama de dispersión de longitud_del_sépalo y ancho_del_sépalo",
)
print(respuesta)

¡Claro! Para crear un diagrama de dispersión de longitud_del_sépalo y ancho_del_sépalo, podemos usar los datos proporcionados en la tabla. La tabla incluye columnas para longitud_del_sépalo, ancho_del_sépalo, longitud_del_pétalo, ancho_del_pétalo y especie. Podemos enfocarnos solo en las columnas de longitud_del_sépalo y ancho_del_sépalo para crear el diagrama.

Ejemplo 3

Prompt = “Graficar un diagrama de dispersión de longitud_del_sépalo y ancho_del_sépalo para las especies”

# Ejecutando el comando de Pandas AI
respuesta = pandas_ai.run(
    df,
    "Graficar un diagrama de dispersión de longitud_del_sépalo y ancho_del_sépalo para las especies",
)
print(respuesta)

¡Claro! Para graficar un diagrama de dispersión de longitud_del_sépalo y ancho_del_sépalo para las especies, podemos usar el conjunto de datos proporcionado que incluye columnas para longitud_del_sépalo, ancho_del_sépalo, longitud_del_pétalo, ancho_del_pétalo y especie. Nos enfocaremos solo en las columnas de longitud_del_sépalo y ancho_del_sépalo. Luego, podemos crear un diagrama de dispersión con longitud_del_sépalo en el eje x y ancho_del_sépalo en el eje y. Esto nos permitirá visualizar cualquier relación potencial entre estas dos variables para cada especie en el conjunto de datos.

Las posibilidades siguen aumentando. Puedes probar tus comandos y ver cómo funciona. El objetivo es aprovechar los beneficios que ofrece la inteligencia artificial generativa.

Conclusión

Hemos visto que al utilizar modelos de lenguaje grandes para extraer información de conjuntos de datos, Pandas AI puede transformar potencialmente el análisis de datos. Sin embargo, está limitado y necesita verificación humana para garantizar la precisión. Este problema se puede resolver mediante el aprendizaje de la ingeniería de comandos. Por lo tanto, podemos concluir diciendo que PandasAI es Pandas + AI. Más específicamente, podemos decir Pandas + AI generativa. Todo esto es posible utilizando comandos, lo que permite al usuario interactuar con las tareas de manera similar a una conversación humana. Los comandos se procesan con NLP avanzado y se combinan con otras tareas.

Puntos clave

  • Los avances en la inteligencia artificial generativa interrumpen los datos, lo que lleva a las empresas a explorar soluciones innovadoras como ChatGPT y PandasAI, mejorando el análisis y la visualización de datos.
  • PandasAI es una biblioteca de Python que opera modelos de inteligencia artificial generativa para mejorar la productividad de Pandas mediante la mejora del análisis y manipulación de datos, utilizando ingeniería de comandos y capacidades de GenAI.
  • La inteligencia artificial generativa ahorra tiempo y permite la creación de sistemas no técnicos a través de comandos conversacionales.

Preguntas frecuentes (FAQs)

  • Código en Github: https://github.com/inuwamobarak/pandasAI
  • PandasAI: https://github.com/gventuri/pandas-ai
  • https://miro.medium.com/v2/resize:fit:1358/0*uPrVQazL1U4woEO9.png
  • Arte de Pandasai: https://github.com/gventuri/pandas-ai/blob/main/images/pandas-ai.png?raw=true

Los medios mostrados en este artículo no son propiedad de Analytics Vidhya y se utilizan a discreción del autor.