Zephyrnet-logo

Bruke Pandas AI for dataanalyse – KDnuggets

Dato:

Er du dyktig i datafeltet ved å bruke Python? I så fall vedder jeg at de fleste av dere bruker Pandas for datamanipulering.

Hvis du ikke vet, pandaer er en åpen kildekode Python-pakke spesielt utviklet for dataanalyse og manipulering. Det er en av de mest brukte pakkene og en du vanligvis lærer når du starter en datavitenskapelig reise i Python.

Så, hva er Pandas AI? Jeg antar at du leser denne artikkelen fordi du vil vite om den.

Vel, som du vet, er vi i en tid hvor Generativ AI er overalt. Tenk deg om du kan utføre dataanalyse på dataene dine ved hjelp av Generativ AI; ting ville vært mye enklere.

Dette er hva Pandas AI bringer. Med enkle spørsmål kan vi raskt analysere og manipulere datasettet vårt uten å sende dataene våre noe sted.

Denne artikkelen vil utforske hvordan du kan bruke Pandas AI for dataanalyseoppgaver. I artikkelen lærer vi følgende:

  • Pandas AI-oppsett
  • Datautforskning med Pandas AI
  • Datavisualisering med Pandas AI
  • Pandas AI Avansert bruk

Hvis du er klar til å lære, la oss komme inn i det!

Pandas AI er en Python-pakke som implementerer en Large Language Model (LLM)-funksjon i Pandas API. Vi kan bruke standard Pandas API med Generativ AI-forbedring som gjør Pandas til et samtaleverktøy.

Vi ønsker hovedsakelig å bruke Pandas AI på grunn av den enkle prosessen som pakken gir. Pakken kan automatisk analysere data ved å bruke en enkel melding uten å kreve kompleks kode.

Nok introduksjon. La oss komme inn i hands-on.

Først må vi installere pakken før noe annet.

pip install pandasai

 

Deretter må vi sette opp LLM vi ønsker å bruke for Pandas AI. Det er flere alternativer, for eksempel OpenAI GPT og HuggingFace. Vi vil imidlertid bruke OpenAI GPT for denne opplæringen.

Det er enkelt å sette OpenAI-modellen inn i Pandas AI, men du trenger OpenAI API-nøkkelen. Hvis du ikke har en, kan du gå på dem nettsted

Hvis alt er klart, la oss sette opp Pandas AI LLM ved å bruke koden nedenfor.

from pandasai.llm import OpenAI

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

 

Du er nå klar til å gjøre dataanalyse med Pandas AI.

Datautforskning med Pandas AI

La oss starte med et eksempeldatasett og prøve datautforskningen med Pandas AI. Jeg ville brukt Titanic-dataene fra Seaborn-pakken i dette eksemplet.

import seaborn as sns
from pandasai import SmartDataframe

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

 

Vi må sende dem inn i Pandas AI Smart Data Frame-objektet for å starte Pandas AI. Etter det kan vi utføre samtaleaktivitet på vår DataFrame.

La oss prøve et enkelt spørsmål.

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

response

 

Andelen passasjerer som overlevde er: 38.38 %

Fra ledeteksten kunne Pandas AI komme med løsningen og svare på spørsmålene våre. 

Vi kan stille Pandas AI-spørsmål som gir svar i DataFrame-objektet. Her er for eksempel flere spørsmål for å analysere dataene.

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

 

Bruker Pandas AI for dataanalyse
Bilde av forfatter
 

Du kan se fra bildet ovenfor at Pandas AI kan gi informasjon med DataFrame-objektet, selv om spørsmålet er ganske komplekst.

Pandas AI kan imidlertid ikke håndtere en beregning som er for kompleks da pakkene er begrenset til LLM-en vi sender videre til SmartDataFrame-objektet. I fremtiden er jeg sikker på at Pandas AI kan håndtere mye mer detaljert analyse ettersom LLM-evnen utvikler seg.

Datavisualisering med Pandas AI

Pandas AI er nyttig for datautforskning og kan utføre datavisualisering. Så lenge vi spesifiserer ledeteksten, vil Pandas AI gi visualiseringsutdata.

La oss prøve et enkelt eksempel.

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

response

 

Bruker Pandas AI for dataanalyse
Bilde av forfatter
 

I eksemplet ovenfor ber vi Pandas AI om å visualisere fordelingen av Fare-kolonnen. Utdata er søylediagramdistribusjonen fra datasettet.

Akkurat som Data Exploration, kan du utføre alle typer datavisualisering. Pandas AI kan imidlertid fortsatt ikke håndtere mer komplekse visualiseringsprosesser.

Her er noen andre eksempler 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""")

 

Bruker Pandas AI for dataanalyse
Bilde av forfatter
 

Tomten ser fin og pen ut. Du kan fortsette å spørre Pandas AI om flere detaljer om nødvendig.

Pandas AI forbedrer bruken

Vi kan bruke flere innebygde APIer fra Pandas AI for å forbedre Pandas AI-opplevelsen.

Tømning av buffer

Som standard lagres alle meldingene og resultatene fra Pandas AI-objektet i den lokale katalogen for å redusere behandlingstiden og redusere tiden Pandas AI trenger for å kalle modellen. 

Imidlertid kan denne cachen noen ganger gjøre Pandas AI-resultatet irrelevant når de vurderer det tidligere resultatet. Derfor er det god praksis å tømme hurtigbufferen. Du kan slette dem med følgende kode.

import pandasai as pai
pai.clear_cache()

 

Du kan også slå av hurtigbufferen i begynnelsen.

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

 

På denne måten lagres ingen melding eller resultat fra begynnelsen.

Egendefinert hode

Det er mulig å sende et prøvehode DataFrame til Pandas AI. Det er nyttig hvis du ikke vil dele noen private data med LLM eller bare vil gi et eksempel til Pandas AI.

For å gjøre det kan du bruke følgende kode.

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 ferdigheter og agenter

Pandas AI lar brukere sende en eksempelfunksjon og utføre den med en agentbeslutning. For eksempel kombinerer funksjonen nedenfor to forskjellige DataFrame, og vi sender en prøveplottfunksjon som Pandas AI-agent kan utføre.

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 ville bestemme om de skulle bruke funksjonen vi tildelte Pandas AI eller ikke. 

Å kombinere Skill og Agent gir deg et mer kontrollerbart resultat for DataFrame-analysen.

Vi har lært hvor enkelt det er å bruke Pandas AI for å hjelpe dataanalysen vår. Ved å bruke kraften til LLM kan vi begrense kodedelen av dataanalysearbeidene og i stedet fokusere på de kritiske arbeidene.

I denne artikkelen har vi lært hvordan du setter opp Pandas AI, utfører datautforskning og visualisering med Pandas AI og fremmer bruk. Du kan gjøre mye mer med pakken, så besøk deres dokumentasjon å lære videre.
 
 

Cornellius Yudha Wijaya er assistentleder for datavitenskap og dataskribent. Mens han jobber på heltid i Allianz Indonesia, elsker han å dele Python- og datatips via sosiale medier og skrivemedier. Cornellius skriver om en rekke AI- og maskinlæringsemner.

spot_img

Siste etterretning

spot_img