Logotipo de Zephyrnet

Utilizando Pandas AI para análisis de datos – KDnuggets

Fecha:

¿Domina el campo de datos usando Python? Si es así, apuesto a que la mayoría de ustedes usa Pandas para la manipulación de datos.

Si usted no sabe, pandas es un paquete Python de código abierto desarrollado específicamente para el análisis y manipulación de datos. Es uno de los paquetes más utilizados y uno que normalmente aprende cuando comienza un viaje en ciencia de datos en Python.

Entonces, ¿qué es la IA de Pandas? Supongo que estás leyendo este artículo porque quieres saberlo.

Bueno, como sabes, estamos en una época en la que la IA generativa está en todas partes. Imagínese si pudiera realizar análisis de datos utilizando IA generativa; las cosas serían mucho más fáciles.

Esto es lo que aporta Pandas AI. Con indicaciones simples, podemos analizar y manipular rápidamente nuestro conjunto de datos sin enviar nuestros datos a ninguna parte.

Este artículo explorará cómo utilizar Pandas AI para tareas de análisis de datos. En el artículo aprenderemos lo siguiente:

  • Configuración de la IA de Pandas
  • Exploración de datos con Pandas AI
  • Visualización de datos con Pandas AI
  • Uso avanzado de Pandas AI

Si estás listo para aprender, ¡entremos en ello!

IA de los pandas es un paquete de Python que implementa una capacidad de modelo de lenguaje grande (LLM) en la API de Pandas. Podemos utilizar la API estándar de Pandas con una mejora de IA generativa que convierte a Pandas en una herramienta conversacional.

Principalmente queremos utilizar Pandas AI debido al proceso simple que proporciona el paquete. El paquete podría analizar datos automáticamente mediante un mensaje simple sin requerir código complejo.

Suficiente introducción. Entremos en la práctica.

Primero, necesitamos instalar el paquete antes que nada.

pip install pandasai

 

A continuación, debemos configurar el LLM que queremos usar para Pandas AI. Hay varias opciones, como OpenAI GPT y HuggingFace. Sin embargo, usaremos OpenAI GPT para este tutorial.

Configurar el modelo OpenAI en Pandas AI es sencillo, pero necesitarás la clave API de OpenAI. Si no tienes uno, puedes subirte a su página web del NDN Collective

Si todo está listo, configuremos Pandas AI LLM usando el siguiente código.

from pandasai.llm import OpenAI

llm = OpenAI(api_token="Your OpenAI API Key")

 

Ahora está listo para realizar análisis de datos con Pandas AI.

Exploración de datos con Pandas AI

Comencemos con un conjunto de datos de muestra y probemos la exploración de datos con Pandas AI. En este ejemplo, usaría los datos del Titanic del paquete Seaborn.

import seaborn as sns
from pandasai import SmartDataframe

data = sns.load_dataset('titanic')
df = SmartDataframe(data, config = {'llm': llm})

 

Necesitamos pasarlos al objeto Pandas AI Smart Data Frame para iniciar Pandas AI. Después de eso, podemos realizar actividad conversacional en nuestro DataFrame.

Intentemos una pregunta sencilla.

response = df.chat("""Return the survived class in percentage""")

response

 

El porcentaje de pasajeros que sobrevivieron es: 38.38%

A partir del mensaje, Pandas AI pudo encontrar la solución y responder nuestras preguntas. 

Podemos hacer preguntas a Pandas AI que proporcionen respuestas en el objeto DataFrame. Por ejemplo, aquí hay varias indicaciones para analizar los datos.

#Data Summary
summary = df.chat("""Can you get me the statistical summary of the dataset""")

#Class percentage
surv_pclass_perc = df.chat("""Return the survived in percentage breakdown by pclass""")

#Missing Data
missing_data_perc = df.chat("""Return the missing data percentage for the columns""")

#Outlier Data
outlier_fare_data = response = df.chat("""Please provide me the data rows that
contains outlier data based on fare column""")

 

Utilizando Pandas AI para el análisis de datos
Imagen del autor
 

Puede ver en la imagen de arriba que Pandas AI puede proporcionar información con el objeto DataFrame, incluso si el mensaje es bastante complejo.

Sin embargo, Pandas AI no puede manejar un cálculo que sea demasiado complejo ya que los paquetes se limitan al LLM que pasamos al objeto SmartDataFrame. En el futuro, estoy seguro de que Pandas AI podría manejar análisis mucho más detallados a medida que evolucione la capacidad LLM.

Visualización de datos con Pandas AI

Pandas AI es útil para la exploración de datos y puede realizar visualización de datos. Siempre que especifiquemos el mensaje, Pandas AI proporcionará el resultado de visualización.

Probemos un ejemplo sencillo.

response = df.chat('Please provide me the fare data distribution visualization')

response

 

Utilizando Pandas AI para el análisis de datos
Imagen del autor
 

En el ejemplo anterior, le pedimos a Pandas AI que visualice la distribución de la columna Tarifa. El resultado es la distribución del gráfico de barras del conjunto de datos.

Al igual que la exploración de datos, puedes realizar cualquier tipo de visualización de datos. Sin embargo, Pandas AI todavía no puede manejar procesos de visualización más complejos.

A continuación se muestran algunos otros ejemplos de visualización de datos con Pandas AI.

kde_plot = df.chat("""Please plot the kde distribution of age column and separate them with survived column""")

box_plot = df.chat("""Return me the box plot visualization of the age column separated by sex""")

heat_map = df.chat("""Give me heat map plot to visualize the numerical columns correlation""")

count_plot = df.chat("""Visualize the categorical column sex and survived""")

 

Utilizando Pandas AI para el análisis de datos
Imagen del autor
 

La trama se ve bonita y ordenada. Puedes seguir pidiendo más detalles a Pandas AI si es necesario.

Uso avanzado de la IA de Pandas

Podemos utilizar varias API integradas de Pandas AI para mejorar la experiencia de Pandas AI.

Borrado de caché

De forma predeterminada, todas las indicaciones y resultados del objeto Pandas AI se almacenan en el directorio local para reducir el tiempo de procesamiento y el tiempo que Pandas AI necesita para llamar al modelo. 

Sin embargo, este caché a veces puede hacer que el resultado de Pandas AI sea irrelevante al considerar el resultado anterior. Por eso es una buena práctica borrar el caché. Puede borrarlos con el siguiente código.

import pandasai as pai
pai.clear_cache()

 

También puedes desactivar el caché al principio.

df = SmartDataframe(data, {"enable_cache": False})

 

De esta manera, no se almacena ningún mensaje o resultado desde el principio.

Cabeza personalizada

Es posible pasar un DataFrame principal de muestra a Pandas AI. Es útil si no desea compartir algunos datos privados con el LLM o simplemente desea brindar un ejemplo a Pandas AI.

Para hacer eso, puede usar el siguiente código.

from pandasai import SmartDataframe
import pandas as pd

# head df
head_df = data.sample(5)

df = SmartDataframe(data, config={
    "custom_head": head_df,
    'llm': llm
})

Habilidades y agentes de IA de Pandas

Pandas AI permite a los usuarios pasar una función de ejemplo y ejecutarla con una decisión del Agente. Por ejemplo, la siguiente función combina dos DataFrame diferentes y pasamos una función de trazado de muestra para que la ejecute el agente Pandas AI.

import pandas as pd
from pandasai import Agent
from pandasai.skills import skill

employees_data = {
    "EmployeeID": [1, 2, 3, 4, 5],
    "Name": ["John", "Emma", "Liam", "Olivia", "William"],
    "Department": ["HR", "Sales", "IT", "Marketing", "Finance"],
}

salaries_data = {
    "EmployeeID": [1, 2, 3, 4, 5],
    "Salary": [5000, 6000, 4500, 7000, 5500],
}

employees_df = pd.DataFrame(employees_data)
salaries_df = pd.DataFrame(salaries_data)

# Function doc string to give more context to the model for use of this skill
@skill
def plot_salaries(names: list[str], salaries: list[int]):
    """
    Displays the bar chart  having name on x-axis and salaries on y-axis
    Args:
        names (list[str]): Employees' names
        salaries (list[int]): Salaries
    """
    # plot bars
    import matplotlib.pyplot as plt

    plt.bar(names, salaries)
    plt.xlabel("Employee Name")
    plt.ylabel("Salary")
    plt.title("Employee Salaries")
    plt.xticks(rotation=45)

    # Adding count above for each bar
    for i, salary in enumerate(salaries):
        plt.text(i, salary + 1000, str(salary), ha='center', va='bottom')
    plt.show()


agent = Agent([employees_df, salaries_df], config = {'llm': llm})
agent.add_skills(plot_salaries)

response = agent.chat("Plot the employee salaries against names")

 

El Agente decidiría si debería usar la función que le asignamos a Pandas AI o no. 

La combinación de Skill y Agent le brinda un resultado más controlable para su análisis de DataFrame.

Hemos aprendido lo fácil que es utilizar Pandas AI para ayudar a que nuestro análisis de datos funcione. Usando el poder de LLM, podemos limitar la parte de codificación de los trabajos de análisis de datos y, en cambio, centrarnos en los trabajos críticos.

En este artículo, hemos aprendido cómo configurar Pandas AI, realizar exploración y visualización de datos con Pandas AI y cómo avanzar en su uso. Puedes hacer mucho más con el paquete, así que visita su documentación para aprender más.
 
 

Cornelio Yudha Wijaya es subgerente de ciencia de datos y redactor de datos. Mientras trabaja a tiempo completo en Allianz Indonesia, le encanta compartir consejos sobre datos y Python a través de las redes sociales y los medios escritos. Cornellius escribe sobre una variedad de temas de inteligencia artificial y aprendizaje automático.

punto_img

Información más reciente

punto_img