Logo Zéphyrnet

Utiliser Pandas AI pour l'analyse des données – KDnuggets

Date :

Maîtrisez-vous le domaine des données en utilisant Python ? Si tel est le cas, je parie que la plupart d'entre vous utilisent Pandas pour manipuler des données.

Si vous ne le savez pas, Pandas est un package Python open source spécialement développé pour l'analyse et la manipulation de données. C'est l'un des packages les plus utilisés et celui que vous apprenez habituellement lorsque vous démarrez un voyage en science des données en Python.

Alors, qu’est-ce que Pandas AI ? Je suppose que vous lisez cet article parce que vous voulez en savoir plus.

Eh bien, comme vous le savez, nous sommes à une époque où l’IA générative est partout. Imaginez si vous pouvez effectuer une analyse de données sur vos données à l'aide de l'IA générative ; les choses seraient beaucoup plus faciles.

C'est ce qu'apporte Pandas AI. Avec des invites simples, nous pouvons analyser et manipuler rapidement notre ensemble de données sans envoyer nos données quelque part.

Cet article explique comment utiliser Pandas AI pour les tâches d'analyse de données. Dans l'article, nous apprendrons ce qui suit :

  • Configuration de l'IA Pandas
  • Exploration de données avec Pandas AI
  • Visualisation des données avec Pandas AI
  • Utilisation avancée de Pandas AI

Si vous êtes prêt à apprendre, allons-y !

IA des pandas est un package Python qui implémente une fonctionnalité LLM (Large Language Model) dans l'API Pandas. Nous pouvons utiliser l'API Pandas standard avec une amélioration de l'IA générative qui transforme Pandas en un outil conversationnel.

Nous souhaitons principalement utiliser Pandas AI en raison du processus simple fourni par le package. Le package pourrait analyser automatiquement les données à l’aide d’une simple invite sans nécessiter de code complexe.

Assez d'introduction. Passons aux choses concrètes.

Tout d’abord, nous devons installer le package avant toute autre chose.

pip install pandasai

 

Ensuite, nous devons configurer le LLM que nous souhaitons utiliser pour Pandas AI. Il existe plusieurs options, telles que OpenAI GPT et HuggingFace. Cependant, nous utiliserons OpenAI GPT pour ce tutoriel.

Définir le modèle OpenAI dans Pandas AI est simple, mais vous aurez besoin de la clé API OpenAI. Si vous n'en avez pas, vous pouvez accéder à leur site

Si tout est prêt, configurons le Pandas AI LLM en utilisant le code ci-dessous.

from pandasai.llm import OpenAI

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

 

Vous êtes maintenant prêt à effectuer une analyse de données avec Pandas AI.

Exploration de données avec Pandas AI

Commençons par un exemple d'ensemble de données et essayons l'exploration des données avec Pandas AI. J'utiliserais les données Titanic du package Seaborn dans cet exemple.

import seaborn as sns
from pandasai import SmartDataframe

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

 

Nous devons les transmettre à l'objet Pandas AI Smart Data Frame pour lancer l'IA Pandas. Après cela, nous pouvons effectuer une activité conversationnelle sur notre DataFrame.

Essayons une question simple.

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

response

 

Le pourcentage de passagers ayant survécu est de : 38.38 %

À partir de l'invite, Pandas AI pourrait proposer la solution et répondre à nos questions. 

Nous pouvons poser des questions à Pandas AI qui fournissent des réponses dans l'objet DataFrame. Par exemple, voici plusieurs invites pour analyser les données.

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

 

Utiliser Pandas AI pour l'analyse des données
Image par auteur
 

Vous pouvez voir sur l'image ci-dessus que l'IA Pandas peut fournir des informations avec l'objet DataFrame, même si l'invite est assez complexe.

Cependant, Pandas AI ne peut pas gérer un calcul trop complexe car les packages sont limités au LLM que nous transmettons sur l'objet SmartDataFrame. À l'avenir, je suis sûr que Pandas AI pourrait gérer une analyse beaucoup plus détaillée à mesure que la capacité LLM évolue.

Visualisation des données avec Pandas AI

Pandas AI est utile pour l'exploration des données et peut effectuer la visualisation des données. Tant que nous spécifions l'invite, Pandas AI donnera le résultat de la visualisation.

Essayons un exemple simple.

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

response

 

Utiliser Pandas AI pour l'analyse des données
Image par auteur
 

Dans l'exemple ci-dessus, nous demandons à Pandas AI de visualiser la répartition de la colonne Fare. Le résultat est la distribution du graphique à barres de l’ensemble de données.

Tout comme l'exploration de données, vous pouvez effectuer tout type de visualisation de données. Cependant, Pandas AI ne peut toujours pas gérer des processus de visualisation plus complexes.

Voici quelques autres exemples de visualisation de données avec 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""")

 

Utiliser Pandas AI pour l'analyse des données
Image par auteur
 

L'intrigue a l'air belle et soignée. Vous pouvez continuer à demander plus de détails à Pandas AI si nécessaire.

Pandas AI fait progresser l’utilisation

Nous pouvons utiliser plusieurs API intégrées de Pandas AI pour améliorer l'expérience Pandas AI.

Vidage du cache

Par défaut, toutes les invites et résultats de l'objet Pandas AI sont stockés dans le répertoire local pour réduire le temps de traitement et le temps dont Pandas AI a besoin pour appeler le modèle. 

Cependant, ce cache peut parfois rendre le résultat de l'IA Pandas non pertinent car ils prennent en compte le résultat passé. C'est pourquoi il est recommandé de vider le cache. Vous pouvez les effacer avec le code suivant.

import pandasai as pai
pai.clear_cache()

 

Vous pouvez également désactiver le cache au début.

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

 

De cette façon, aucune invite ou résultat n’est stocké depuis le début.

Tête personnalisée

Il est possible de transmettre un exemple de DataFrame de tête à Pandas AI. C'est utile si vous ne souhaitez pas partager certaines données privées avec le LLM ou si vous souhaitez simplement fournir un exemple à Pandas AI.

Pour ce faire, vous pouvez utiliser le code suivant.

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

Compétences et agents Pandas AI

Pandas AI permet aux utilisateurs de transmettre un exemple de fonction et de l'exécuter avec une décision d'agent. Par exemple, la fonction ci-dessous combine deux DataFrame différents et nous transmettons un exemple de fonction de tracé à exécuter par l'agent 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")

 

L'agent déciderait s'il devait ou non utiliser la fonction que nous avons assignée à l'IA Pandas. 

La combinaison de Skill et Agent vous donne un résultat plus contrôlable pour votre analyse DataFrame.

Nous avons appris à quel point il est facile d'utiliser Pandas AI pour nous aider dans notre travail d'analyse de données. En utilisant la puissance du LLM, nous pouvons limiter la partie codage des travaux d’analyse des données et nous concentrer plutôt sur les travaux critiques.

Dans cet article, nous avons appris comment configurer Pandas AI, effectuer l'exploration et la visualisation des données avec Pandas AI et faire progresser l'utilisation. Vous pouvez faire bien plus avec le package, alors visitez leur Documentation pour en savoir plus.
 
 

Cornellius Yudha Wijaya est directeur adjoint de la science des données et rédacteur de données. Tout en travaillant à temps plein chez Allianz Indonesia, il aime partager des conseils sur Python et les données via les réseaux sociaux et la rédaction. Cornellius écrit sur une variété de sujets liés à l'IA et à l'apprentissage automatique.

spot_img

Dernières informations

spot_img