ゼファーネットのロゴ

データ分析に Pandas AI を活用 – KDnuggets

日付:

Python を使用したデータ分野に習熟していますか?もしそうなら、ほとんどの人がデータ操作に Pandas を使用していると思います。

あなたが知らないなら、 パンダ は、データ分析と操作のために特別に開発されたオープンソースの Python パッケージです。これは最もよく使用されるパッケージの 1 つであり、Python でデータ サイエンスを始めるときに通常学習するパッケージです。

では、パンダ AI とは何でしょうか?あなたはそれを知りたくてこの記事を読んでいると思います。

ご存知のとおり、私たちはジェネレーティブ AI がどこにでも存在する時代です。 Generative AI を使用してデータ分析を実行できるかどうかを想像してください。物事はずっと簡単になるでしょう。

これが Panda AI がもたらすものです。シンプルなプロンプトを使用すると、データをどこかに送信することなく、データセットを迅速に分析および操作できます。

この記事では、Pandas AI をデータ分析タスクに利用する方法について説明します。この記事では、次のことを学びます。

  • パンダ AI のセットアップ
  • Pandas AI によるデータ探索
  • Pandas AI によるデータ視覚化
  • Panda AI の高度な使用法

学ぶ準備ができたら、早速始めましょう!

パンダAI は、Large Language Model (LLM) 機能を Pandas API に実装する Python パッケージです。標準の Pandas API と、Pandas を会話ツールに変える Generative AI 拡張機能を使用できます。

パッケージが提供するプロセスが簡単であるため、主に Pandas AI を使用したいと考えています。このパッケージは、複雑なコードを必要とせずに、単純なプロンプトを使用してデータを自動的に分析できます。

紹介は十分です。ハンズオンに入りましょう。

まず、何よりも先にパッケージをインストールする必要があります。

pip install pandasai

 

次に、Pandas AI に使用する LLM を設定する必要があります。 OpenAI GPT や HuggingFace など、いくつかのオプションがあります。ただし、このチュートリアルでは OpenAI GPT を使用します。

OpenAI モデルを Pandas AI に設定するのは簡単ですが、OpenAI API キーが必要になります。持っていない場合は、それらに乗ることができます ウェブサイト

すべての準備ができたら、以下のコードを使用して Pandas AI LLM をセットアップしましょう。

from pandasai.llm import OpenAI

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

 

これで、Pandas AI を使用してデータ分析を行う準備が整いました。

Pandas AI によるデータ探索

サンプル データセットから始めて、Pandas AI を使用したデータ探索を試してみましょう。この例では、Seaborn パッケージのタイタニック データを使用します。

import seaborn as sns
from pandasai import SmartDataframe

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

 

Pandas AI を開始するには、それらを Pandas AI スマート データ フレーム オブジェクトに渡す必要があります。その後、DataFrame で会話アクティビティを実行できます。

簡単な質問をしてみましょう。

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

response

 

生き残った乗客の割合: 38.38%

Pandas AI はプロンプトからソリューションを考え出し、私たちの質問に答えることができます。 

Pandas AI に質問して、DataFrame オブジェクトで答えを得ることができます。たとえば、データを分析するためのいくつかのプロンプトを次に示します。

#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 をデータ分析に活用
著者による画像
 

上の画像から、プロンプトが非常に複雑であっても、Pandas AI が DataFrame オブジェクトを使用して情報を提供できることがわかります。

ただし、パッケージは SmartDataFrame オブジェクトで渡す LLM に限定されているため、Pandas AI は複雑すぎる計算を処理できません。将来的には、LLM 機能が進化するにつれて、Pandas AI がより詳細な分析を処理できるようになると確信しています。

Pandas AI によるデータ視覚化

Pandas AI はデータ探索に役立ち、データの視覚化を実行できます。プロンプトを指定している限り、Pandas AI は視覚化出力を提供します。

簡単な例を試してみましょう。

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

response

 

Pandas AI をデータ分析に活用
著者による画像
 

上の例では、Pandas AI に Fare 列の分布を視覚化するよう依頼しています。出力は、データセットからの棒グラフ分布です。

データ探索と同様に、あらゆる種類のデータ視覚化を実行できます。ただし、Pandas AI はまだ、より複雑な視覚化プロセスを処理できません。

ここでは、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""")

 

Pandas AI をデータ分析に活用
著者による画像
 

プロットは素晴らしくてきちんと見えます。必要に応じて、Pandas AI に詳細を尋ね続けることができます。

Pandas AI による利用の進歩

Pandas AI のいくつかの組み込み API を使用して、Pandas AI エクスペリエンスを向上させることができます。

キャッシュのクリア

デフォルトでは、Pandas AI オブジェクトからのすべてのプロンプトと結果はローカル ディレクトリに保存され、処理時間を短縮し、Pandas AI がモデルを呼び出すのに必要な時間を短縮します。 

ただし、このキャッシュにより、過去の結果が考慮されるため、Pandas AI の結果が無関係になる場合があります。そのため、キャッシュをクリアすることをお勧めします。次のコードを使用してそれらをクリアできます。

import pandasai as pai
pai.clear_cache()

 

最初からキャッシュをオフにすることもできます。

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

 

この方法では、最初からプロンプトや結果は保存されません。

カスタムヘッド

サンプルヘッドの DataFrame を Pandas AI に渡すことができます。これは、プライベート データを LLM と共有したくない場合、または単に Pandas AI に例を提供したい場合に役立ちます。

これを行うには、次のコードを使用できます。

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 スキルとエージェント

Pandas AI を使用すると、ユーザーはサンプル関数を渡し、エージェントの決定に従ってそれを実行できます。たとえば、以下の関数は 2 つの異なる DataFrame を結合し、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")

 

エージェントは、Pandas AI に割り当てた機能を使用するかどうかを決定します。 

スキルとエージェントを組み合わせると、DataFrame 分析の結果をより制御しやすくなります。

Pandas AI を使用してデータ分析を支援することがいかに簡単であるかを学びました。 LLM の機能を利用すると、データ分析作業のコーディング部分を制限し、代わりに重要な作業に集中できます。

この記事では、Pandas AI のセットアップ方法、Pandas AI を使用したデータ探索と視覚化の実行方法、および高度な使用方法を学習しました。このパッケージを使用するとさらに多くのことができるので、次のサイトにアクセスしてください。 ドキュメント さらに学ぶために。
 
 

コーネリアス・ユダ・ウィジャヤ データ サイエンスのアシスタント マネージャー兼データ ライターです。アリアンツ インドネシアでフルタイムで働いている彼は、ソーシャル メディアや執筆メディアを通じて Python とデータのヒントを共有するのが大好きです。 Cornellius は、AI と機械学習のさまざまなトピックについて執筆しています。

スポット画像

最新のインテリジェンス

スポット画像