A Pandas AI használata adatelemzéshez – KDnuggets

A Pandas AI használata adatelemzéshez – KDnuggets

Forrás csomópont: 2547978

Jártas vagy az adatmezőben a Python használatával? Ha igen, lefogadom, hogy a legtöbben a Pandákat használják adatkezelésre.

Ha nem tudod, pandák egy nyílt forráskódú Python csomag, amelyet kifejezetten az adatok elemzésére és manipulálására fejlesztettek ki. Ez az egyik leggyakrabban használt csomag, amelyet általában akkor tanul meg, amikor elkezd egy adattudományi utat a Pythonban.

Szóval, mi az a Pandas AI? Gondolom, azért olvassa ezt a cikket, mert tudni akar róla.

Nos, mint tudod, olyan időket élünk, amikor a generatív AI mindenhol jelen van. Képzelje el, hogy a Generatív AI segítségével adatelemzést végezhet az adatain; sokkal könnyebb lenne a dolog.

Ezt hozza a Pandas AI. Egyszerű utasításokkal gyorsan elemezhetjük és manipulálhatjuk adatkészletünket anélkül, hogy adatainkat elküldené valahova.

Ez a cikk azt mutatja be, hogyan használható a Pandas AI adatelemzési feladatokhoz. A cikkből megtudjuk a következőket:

  • Pandas AI beállítás
  • Adatfeltárás a Pandas AI segítségével
  • Adatvizualizáció Pandas AI-val
  • Pandas AI Speciális használat

Ha készen állsz a tanulásra, vágj bele!

Panda AI egy Python-csomag, amely egy Large Language Model (LLM) képességet valósít meg a Pandas API-ban. Használhatjuk a szabványos Pandas API-t a Generative AI fejlesztéssel, amely a Pandákat beszélgetési eszközzé varázsolja.

Elsősorban a Pandas AI-t szeretnénk használni a csomag által biztosított egyszerű folyamat miatt. A csomag automatikusan elemezheti az adatokat egy egyszerű prompt segítségével anélkül, hogy bonyolult kódra lenne szüksége.

Elég a bevezetés. Térjünk bele a gyakorlatba.

Először is telepítenünk kell a csomagot, mielőtt bármi mást.

pip install pandasai

 

Ezután be kell állítanunk a Pandas AI-hoz használni kívánt LLM-et. Számos lehetőség van, például az OpenAI GPT és a HuggingFace. Ehhez az oktatóanyaghoz azonban az OpenAI GPT-t fogjuk használni.

Az OpenAI modell Pandas AI-be állítása egyszerű, de szüksége lesz az OpenAI API-kulcsra. Ha nincs ilyened, akkor rájuk szállhatsz

Ha minden készen van, állítsuk be a Pandas AI LLM-et az alábbi kóddal.

from pandasai.llm import OpenAI

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

 

Most már készen áll az adatelemzésre a Pandas AI segítségével.

Adatfeltárás a Pandas AI segítségével

Kezdjük egy mintaadatkészlettel, és próbáljuk ki az adatfeltárást a Pandas AI segítségével. Ebben a példában a Seaborn csomagból származó Titanic-adatokat használnám.

import seaborn as sns
from pandasai import SmartDataframe

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

 

Át kell adnunk őket a Pandas AI Smart Data Frame objektumnak a Pandas AI elindításához. Ezt követően párbeszédes tevékenységet végezhetünk a DataFrame-ünkön.

Próbáljunk meg egy egyszerű kérdést.

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

response

 

A túlélők aránya: 38.38%

A felszólításból a Pandas AI előállhatna a megoldással, és válaszolhatna kérdéseinkre. 

Feltehetünk olyan Pandas AI-s kérdéseket, amelyek választ adnak a DataFrame objektumban. Például itt van néhány felszólítás az adatok elemzéséhez.

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

 

Pandas AI használata adatelemzéshez
A kép szerzője
 

A fenti képen látható, hogy a Pandas AI még akkor is tud információt szolgáltatni a DataFrame objektummal, ha a prompt meglehetősen összetett.

A Pandas AI azonban nem tud kezelni egy túl bonyolult számítást, mivel a csomagok a SmartDataFrame objektumnak továbbított LLM-re korlátozódnak. Biztos vagyok benne, hogy a jövőben a Pandas AI sokkal részletesebb elemzést tudna kezelni, ahogy az LLM képesség fejlődik.

Adatvizualizáció Pandas AI-val

A Pandas AI hasznos az adatok feltárásához, és képes az adatok megjelenítésére. Amíg megadjuk a promptot, a Pandas AI megadja a vizualizációs kimenetet.

Próbáljunk meg egy egyszerű példát.

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

response

 

Pandas AI használata adatelemzéshez
A kép szerzője
 

A fenti példában megkérjük a Pandas AI-t, hogy vizualizálja a Viteldíj oszlop eloszlását. A kimenet az adatkészlet oszlopdiagram-eloszlása.

Csakúgy, mint a Data Exploration, bármilyen adatvizualizációt végrehajthat. A Pandas AI azonban továbbra sem tud bonyolultabb vizualizációs folyamatokat kezelni.

Íme néhány további példa a Pandas AI-val történő adatvizualizációra.

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

 

Pandas AI használata adatelemzéshez
A kép szerzője
 

A cselekmény szépnek és rendezettnek tűnik. Szükség esetén folyamatosan kérdezhet a Pandas AI-tól további részletekért.

Pandas AI Advanced Usage

A Pandas AI számos beépített API-ját használhatjuk a Pandas AI élményének javítására.

Gyorsítótár törlése

Alapértelmezés szerint a Pandas AI objektum összes promptja és eredménye a helyi könyvtárban tárolódik, hogy csökkentsék a feldolgozási időt, és lerövidítsék azt az időt, amelyre a Pandas AI-nak szüksége van a modell meghívásához. 

Ez a gyorsítótár azonban néha irrelevánssá teheti a Pandas AI eredményét, mivel a múltbeli eredményt tekintik. Ezért jó gyakorlat a gyorsítótár törlése. A következő kóddal törölheti őket.

import pandasai as pai
pai.clear_cache()

 

A gyorsítótárat is kikapcsolhatja az elején.

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

 

Ily módon a rendszer kezdettől fogva semmilyen prompt vagy eredményt nem tárol.

Egyedi fej

Lehetőség van egy mintafej DataFrame átadására a Pandas AI-nek. Hasznos, ha nem szeretne személyes adatokat megosztani az LLM-mel, vagy csak példát szeretne mutatni a Pandas AI számára.

Ehhez használhatja a következő kódot.

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

Panda AI készségek és ügynökök

A Pandas AI lehetővé teszi a felhasználók számára, hogy átadjanak egy példafüggvényt, és végrehajtsák azt ügynöki döntéssel. Például az alábbi függvény két különböző DataFrame-et egyesít, és egy minta plot függvényt adunk át a Pandas AI ügynök végrehajtásához.

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

 

Az ügynök dönti el, hogy használniuk kell-e azt a funkciót, amelyet a Pandas AI-hoz rendeltünk, vagy sem. 

A Skill és az Agent kombinálása jobban ellenőrizhető eredményt biztosít a DataFrame elemzéséhez.

Megtanultuk, milyen egyszerű a Pandas AI használata adatelemzésünk elősegítésére. Az LLM erejét felhasználva korlátozhatjuk az adatelemzési munkák kódolási részét, és ehelyett a kritikus munkákra összpontosíthatunk.

Ebben a cikkben megtanultuk, hogyan állíthat be Pandas AI-t, hogyan hajthat végre adatfeltárást és vizualizációt a Pandas AI segítségével, és hogyan fejlesztheti tovább a használatot. Sokkal többet tehet a csomaggal, ezért látogassa meg őket dokumentáció tovább tanulni.
 
 

Cornelius Yudha Wijaya adattudományi asszisztens menedzser és adatíró. Miközben teljes munkaidőben dolgozik az Allianz Indonesia-nál, szeret Python- és adattippeket megosztani a közösségi médián és az írási médián keresztül. Cornellius különféle AI és gépi tanulási témákról ír.

Időbélyeg:

Még több KDnuggets