Zephyrnet Logo

Utilizando Pandas AI para análise de dados – KDnuggets

Data:

Você é proficiente no campo de dados usando Python? Nesse caso, aposto que a maioria de vocês usa Pandas para manipulação de dados.

Se você não sabe, Pandas é um pacote Python de código aberto desenvolvido especificamente para análise e manipulação de dados. É um dos pacotes mais usados ​​e que você geralmente aprende ao iniciar uma jornada de ciência de dados em Python.

Então, o que é Pandas AI? Acho que você está lendo este artigo porque deseja saber mais sobre ele.

Bem, como você sabe, estamos em uma época em que a IA generativa está em toda parte. Imagine se você pudesse realizar análises de dados usando IA generativa; as coisas seriam muito mais fáceis.

Isso é o que o Pandas AI traz. Com instruções simples, podemos analisar e manipular rapidamente nosso conjunto de dados sem enviar nossos dados para algum lugar.

Este artigo explorará como utilizar o Pandas AI para tarefas de análise de dados. No artigo, aprenderemos o seguinte:

  • Configuração da IA ​​do Pandas
  • Exploração de dados com Pandas AI
  • Visualização de dados com Pandas AI
  • Uso avançado do Pandas AI

Se você está pronto para aprender, vamos começar!

Pandas IA é um pacote Python que implementa um recurso Large Language Model (LLM) na API Pandas. Podemos usar a API padrão do Pandas com aprimoramento de IA generativa que transforma o Pandas em uma ferramenta de conversação.

Queremos usar o Pandas AI principalmente por causa do processo simples que o pacote oferece. O pacote pode analisar dados automaticamente usando um prompt simples, sem exigir código complexo.

Chega de introdução. Vamos começar a trabalhar.

Primeiro, precisamos instalar o pacote antes de mais nada.

pip install pandasai

 

A seguir, devemos configurar o LLM que queremos usar para o Pandas AI. Existem diversas opções, como OpenAI GPT e HuggingFace. No entanto, usaremos o OpenAI GPT para este tutorial.

Configurar o modelo OpenAI no Pandas AI é simples, mas você precisaria da chave de API OpenAI. Se você não tiver um, você pode entrar no site deles site do Network Development Group

Se tudo estiver pronto, vamos configurar o Pandas AI LLM usando o código abaixo.

from pandasai.llm import OpenAI

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

 

Agora você está pronto para fazer análise de dados com Pandas AI.

Exploração de dados com Pandas AI

Vamos começar com um conjunto de dados de amostra e tentar a exploração de dados com Pandas AI. Eu usaria os dados do Titanic do pacote Seaborn neste exemplo.

import seaborn as sns
from pandasai import SmartDataframe

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

 

Precisamos passá-los para o objeto Pandas AI Smart Data Frame para iniciar o Pandas AI. Depois disso, podemos realizar atividades conversacionais em nosso DataFrame.

Vamos tentar uma pergunta simples.

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

response

 

A porcentagem de passageiros que sobreviveram é: 38.38%

A partir do prompt, a Pandas AI poderia encontrar a solução e responder às nossas perguntas. 

Podemos fazer perguntas ao Pandas AI que fornecem respostas no objeto DataFrame. Por exemplo, aqui estão vários prompts para analisar os dados.

#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 análise de dados
Imagem do autor
 

Você pode ver na imagem acima que o Pandas AI pode fornecer informações com o objeto DataFrame, mesmo que o prompt seja bastante complexo.

No entanto, o Pandas AI não consegue lidar com cálculos muito complexos, pois os pacotes são limitados ao LLM que passamos no objeto SmartDataFrame. No futuro, tenho certeza de que o Pandas AI poderá lidar com análises muito mais detalhadas à medida que a capacidade do LLM estiver evoluindo.

Visualização de dados com Pandas AI

Pandas AI é útil para exploração de dados e pode realizar visualização de dados. Contanto que especifiquemos o prompt, o Pandas AI fornecerá a saída de visualização.

Vamos tentar um exemplo simples.

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

response

 

Utilizando Pandas AI para análise de dados
Imagem do autor
 

No exemplo acima, pedimos ao Pandas AI que visualize a distribuição da coluna Tarifa. A saída é a distribuição do gráfico de barras do conjunto de dados.

Assim como a Exploração de Dados, você pode realizar qualquer tipo de visualização de dados. No entanto, o Pandas AI ainda não consegue lidar com processos de visualização mais complexos.

Aqui estão alguns outros exemplos de visualização de dados com 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 análise de dados
Imagem do autor
 

O enredo parece bom e limpo. Você pode continuar pedindo mais detalhes ao Pandas AI, se necessário.

Pandas AI avança no uso

Podemos usar várias APIs integradas do Pandas AI para melhorar a experiência do Pandas AI.

Limpeza de cache

Por padrão, todos os prompts e resultados do objeto Pandas AI são armazenados no diretório local para reduzir o tempo de processamento e o tempo que o Pandas AI precisa para chamar o modelo. 

No entanto, esse cache às vezes pode tornar o resultado do Pandas AI irrelevante, pois eles consideram o resultado anterior. É por isso que é uma boa prática limpar o cache. Você pode eliminá-los com o código a seguir.

import pandasai as pai
pai.clear_cache()

 

Você também pode desligar o cache no início.

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

 

Desta forma, nenhum prompt ou resultado é armazenado desde o início.

Cabeça personalizada

É possível passar um DataFrame principal de amostra para o Pandas AI. É útil se você não deseja compartilhar alguns dados privados com o LLM ou apenas deseja fornecer um exemplo para o Pandas AI.

Para fazer isso, você pode usar o seguinte 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 e agentes de IA do Pandas

O Pandas AI permite que os usuários passem uma função de exemplo e a executem com uma decisão do Agente. Por exemplo, a função abaixo combina dois DataFrame diferentes e passamos uma função de gráfico de amostra para o agente Pandas AI executar.

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")

 

O Agente decidiria se deveria usar a função que atribuímos ao Pandas AI ou não. 

Combinar habilidade e agente fornece um resultado mais controlável para sua análise de DataFrame.

Aprendemos como é fácil usar o Pandas AI para ajudar no trabalho de análise de dados. Usando o poder do LLM, podemos limitar a parte de codificação dos trabalhos de análise de dados e, em vez disso, focar nos trabalhos críticos.

Neste artigo, aprendemos como configurar o Pandas AI, realizar exploração e visualização de dados com o Pandas AI e avançar no uso. Você pode fazer muito mais com o pacote, então visite o site deles documentação para aprender mais.
 
 

Cornélio Yudha Wijaya é gerente assistente de ciência de dados e redator de dados. Enquanto trabalha em tempo integral na Allianz Indonésia, ele adora compartilhar dicas sobre Python e dados nas redes sociais e na mídia escrita. Cornellius escreve sobre uma variedade de tópicos de IA e aprendizado de máquina.

local_img

Inteligência mais recente

local_img