Zephyrnet-logotyp

Använder Pandas AI för dataanalys – KDnuggets

Datum:

Är du skicklig i datafältet med Python? Om så är fallet, jag slår vad om att de flesta av er använder Pandas för datamanipulation.

Om du inte vet, pandas är ett Python-paket med öppen källkod speciellt utvecklat för dataanalys och manipulation. Det är ett av de mest använda paketen och ett du vanligtvis lär dig när du startar en datavetenskapsresa i Python.

Så, vad är Pandas AI? Jag antar att du läser den här artikeln för att du vill veta om den.

Som ni vet är vi i en tid då Generativ AI finns överallt. Föreställ dig om du kan utföra dataanalys på dina data med hjälp av Generativ AI; saker och ting skulle vara mycket lättare.

Detta är vad Pandas AI ger. Med enkla uppmaningar kan vi snabbt analysera och manipulera vår datauppsättning utan att skicka vår data någonstans.

Den här artikeln kommer att undersöka hur man använder Pandas AI för dataanalysuppgifter. I artikeln kommer vi att lära oss följande:

  • Pandas AI-inställning
  • Datautforskning med Pandas AI
  • Datavisualisering med Pandas AI
  • Pandas AI Avancerad användning

Om du är redo att lära dig, låt oss komma in i det!

Pandas AI är ett Python-paket som implementerar en Large Language Model-funktion (LLM) i Pandas API. Vi kan använda standard Pandas API med generativ AI-förbättring som gör Pandas till ett samtalsverktyg.

Vi vill främst använda Pandas AI på grund av den enkla processen som paketet tillhandahåller. Paketet kan automatiskt analysera data med en enkel uppmaning utan att kräva komplex kod.

Nog med introduktion. Låt oss komma in i hands-on.

Först måste vi installera paketet före allt annat.

pip install pandasai

 

Därefter måste vi ställa in den LLM vi vill använda för Pandas AI. Det finns flera alternativ, som OpenAI GPT och HuggingFace. Vi kommer dock att använda OpenAI GPT för denna handledning.

Att ställa in OpenAI-modellen i Pandas AI är enkelt, men du skulle behöva OpenAI API-nyckeln. Om du inte har en, kan du gå på dem webbplats

Om allt är klart, låt oss ställa in Pandas AI LLM med koden nedan.

from pandasai.llm import OpenAI

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

 

Du är nu redo att göra dataanalys med Pandas AI.

Datautforskning med Pandas AI

Låt oss börja med en exempeldatauppsättning och prova datautforskningen med Pandas AI. Jag skulle använda Titanic-data från Seaborn-paketet i det här exemplet.

import seaborn as sns
from pandasai import SmartDataframe

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

 

Vi måste skicka dem till Pandas AI Smart Data Frame-objektet för att initiera Pandas AI. Efter det kan vi utföra konversationsaktivitet på vår DataFrame.

Låt oss prova en enkel fråga.

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

response

 

Andelen passagerare som överlevde är: 38.38%

Från prompten kunde Pandas AI komma med lösningen och svara på våra frågor. 

Vi kan ställa Pandas AI-frågor som ger svar i DataFrame-objektet. Här är till exempel flera uppmaningar för att analysera data.

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

 

Använder Pandas AI för dataanalys
Bild av författare
 

Du kan se från bilden ovan att Pandas AI kan ge information med DataFrame-objektet, även om prompten är ganska komplex.

Pandas AI kan dock inte hantera en beräkning som är för komplex då paketen är begränsade till den LLM vi skickar vidare till SmartDataFrame-objektet. I framtiden är jag säker på att Pandas AI skulle kunna hantera mycket mer detaljerad analys när LLM-kapaciteten utvecklas.

Datavisualisering med Pandas AI

Pandas AI är användbar för datautforskning och kan utföra datavisualisering. Så länge vi anger prompten kommer Pandas AI att ge visualiseringsutdata.

Låt oss prova ett enkelt exempel.

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

response

 

Använder Pandas AI för dataanalys
Bild av författare
 

I exemplet ovan ber vi Pandas AI att visualisera fördelningen av kolumnen Fare. Utdata är stapeldiagramsfördelningen från datamängden.

Precis som Data Exploration kan du utföra vilken typ av datavisualisering som helst. Pandas AI kan dock fortfarande inte hantera mer komplexa visualiseringsprocesser.

Här är några andra exempel på datavisualisering med 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""")

 

Använder Pandas AI för dataanalys
Bild av författare
 

Handlingen ser fin och snygg ut. Du kan fortsätta att fråga Pandas AI om mer information om det behövs.

Pandas AI förbättrar användningen

Vi kan använda flera inbyggda API:er från Pandas AI för att förbättra Pandas AI-upplevelsen.

Cacherensning

Som standard lagras alla uppmaningar och resultat från Pandas AI-objektet i den lokala katalogen för att minska bearbetningstiden och minska den tid som Pandas AI behöver för att anropa modellen. 

Men den här cachen kan ibland göra Pandas AI-resultat irrelevanta eftersom de överväger det tidigare resultatet. Det är därför det är bra att rensa cachen. Du kan rensa dem med följande kod.

import pandasai as pai
pai.clear_cache()

 

Du kan också stänga av cachen i början.

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

 

På så sätt lagras ingen uppmaning eller resultat från början.

Anpassat huvud

Det är möjligt att skicka ett exempelhuvud DataFrame till Pandas AI. Det är användbart om du inte vill dela vissa privata data med LLM eller bara vill ge ett exempel till Pandas AI.

För att göra det kan du använda följande kod.

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

Pandas AI färdigheter och agenter

Pandas AI tillåter användare att skicka en exempelfunktion och exekvera den med ett agentbeslut. Till exempel kombinerar funktionen nedan två olika DataFrame, och vi skickar en exempelplotfunktion för Pandas AI-agent att exekvera.

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

 

Agenten skulle bestämma om de skulle använda funktionen vi tilldelade Pandas AI eller inte. 

Genom att kombinera Skill och Agent får du ett mer kontrollerbart resultat för din DataFrame-analys.

Vi har lärt oss hur enkelt det är att använda Pandas AI för att hjälpa vår dataanalys att fungera. Med hjälp av kraften i LLM kan vi begränsa kodningsdelen av dataanalysarbetena och istället fokusera på de kritiska arbetena.

I den här artikeln har vi lärt oss hur man ställer in Pandas AI, utför datautforskning och visualisering med Pandas AI, och avancerar användningen. Du kan göra mycket mer med paketet, så besök deras dokumentation att lära sig vidare.
 
 

Cornellius Yudha Wijaya är biträdande chef för datavetenskap och dataskribent. Medan han arbetar heltid på Allianz Indonesia älskar han att dela Python- och datatips via sociala medier och skrivande media. Cornellius skriver om en mängd olika AI- och maskininlärningsämnen.

plats_img

Senaste intelligens

plats_img