PandasAIの紹介:GenAIを搭載したデータ分析ライブラリ

PandasAI データ分析ライブラリにGenAIを組み込んだもの

イントロダクション

最近、ジェネレーティブ人工知能の分野で急速な発展とブレークスルーがあり、データ分野においても大きな変革が起きています。企業は、ChatGPTなどのイノベーションを最大限に活用する方法を模索しています。これにより、どんなビジネスでも競争上の優位性を得ることができます。新しい最先端のイノベーションとして、通常のPandasライブラリに「PandasAI」という名前のGenAIパワードのデータ分析ライブラリを導入しています。これはOpenAIが行っています。ジェネレーティブAIの他の領域とは異なり、PandasAIはGenAIの技術を分析ツールPandasに適用しています。

名前の通り、これは従来のPandasライブラリに人工知能を直接適用しています。Pandasライブラリは、Pythonを使用した前処理やデータの可視化などのタスクにおいて、データ分野で非常に人気があり、このイノベーションによってさらに良くなりました。

学習目標

  • 新しいPandasAIの理解
  • 会話型クエリを使用したPandasAIの使用
  • PandasAIを使用したグラフのプロット
  • PandasAIおよびそのバックエンド(GenAI)の概要

この記事は、Data Science Blogathonの一環として公開されました。

PandasAIとは何ですか?

PandasAIは、Generative AIモデルを使用してpandasでタスクを実行するPythonライブラリです。これは、Prompt Engineeringを使用してPandasデータフレームを会話形式にするために、Generative AIの機能を統合したライブラリです。Pandasを思い出すと、データの分析と操作が思い浮かびます。PandasAIでは、GenAIの恩恵を受けながら、Pandasの生産性を向上させようとしています。

なぜPandasAIを使用するのですか?

Generative AIの助けを借りて、データセットに対して会話的なプロンプトを与える必要があります。これにより、学習や理解に複雑なコードを必要としなくなります。データサイエンティストは、自然な人間の言語を使ってデータセットにクエリを投げることができ、結果を得ることができます。これにより、前処理と分析にかかる時間が節約されます。これは、プログラマがコードを書く必要がない新しい革命です。彼らはただ思っていることを言い、その指示が実行されるのを見るだけです。非技術者でも複雑なコードを書かずにシステムを構築することができるようになりました!

PandasAIはどのように動作しますか?

PandasAIの使用方法を見る前に、PandasAIがどのように動作するかを見てみましょう。ここで「ジェネレーティブ人工知能」という用語を何度も使用しています。これは、PandasAIの実装の背後にある技術として機能しています。ジェネレーティブAI(GenAI)は、テキスト、オーディオ、ビデオ、画像、3Dモデルなど、さまざまなデータタイプを生成できる人工知能のサブセットです。これは、既に収集されたデータのパターンを特定し、それらを利用して新しい独自の出力を作成することで実現されます。

もう一つ注意すべきことは、大規模な言語モデル(LLM)の使用です。PandasAIは、数千万から数十億のパラメータを持つ人工ニューラルネットワーク(ANN)からなるモデルであるLLMに基づいてトレーニングされています。これにより、PandasAIの背後にあるモデルは、人間の指示を受け取り、解釈する前にトークン化することができます。PandasAIはまた、LangChainモデルを扱うように設計されており、LLMアプリケーションの構築を容易にします。

Pandas AIの始め方

さて、PandasAIの使用方法を見てみましょう。PandasAIの使用には2つの方法があります。まずはLangChainモデルを使用し、次に直接の実装を行います。

LangChainモデルの使用

LangChainモデルを使用するには、まずLangchainパッケージをインストールする必要があります:

pip install langchain

次に、LangChainオブジェクトをインスタンス化します:

from pandasai import PandasAI
from langchain.llms import OpenAI

langchain_llm = OpenAI(openai_api_key="my-openai-api-key")
pandasai = PandasAI(llm=langchain_llm)

環境が準備されました。PandasAI は LangChain llm を自動的に使用して、PandasAI llm に変換します。

直接実装(LangChain を使用せず)

この記事では、LangChain を使用せずに PandasAI をインストールすることで、この2つ目のアプローチを使用します。この記事を書いた時点では、Pandas のように Colab には PandasAI が事前にインストールされていませんでした。そのため、インストールから始める必要があります。

pip install pandasai

もう1つ重要なことは、PandaAI を使用するには OpenAI API キーが必要であることです。API キーは OpenAI プラットフォームのアカウントで作成できます。キーを作成するには、こちらを訪れてください。

キーを将来の使用のために安全に保管しておくことを忘れないでください。サイトに戻ってもキーをコピーすることはできません。クレジットを管理するために、私もAPIキーを公開から隠しました。同様にしてください!

注意:無料の OpenAI アカウントでは、PandasAI を利用してグラフをプロットすることが制限されます。制限は1分あたり3つのプロンプトまでです。これはシステムの需要を管理し、最大化するためです。

依存関係のインポート

まずは依存関係をインポートしましょう。

import pandas as pd

# PandasAI
from pandasai import PandasAI

# チャートのために
import seaborn as sns

# seaborn の iris データセット
iris = sns.load_dataset('iris')

# 最初の行を表示
iris.head()

次に、先程インストールした Pandasai から OpenAI をインポートします。コードを実行する前に、INSERT_YOUR_API_KEY_HERE を自分のAPIキーで置換してください。

# サンプルの DataFrame
df = iris

# LLM のインスタンス化
from pandasai.llm.openai import OpenAI

# API キーの割り当て
llm = OpenAI(api_token="INSERT_YOUR_API_KEY_HERE")

# PandasAI を呼び出し
pandas_ai = PandasAI(llm)

対話型クエリ

では、iris データセットに対していくつかのテキストプロンプトを見てみましょう。

例 1

prompt=‘Which is the most common specie?’

# PandasAI プロンプトを実行
pandas_ai.run(df, prompt='Which is the most common specie?')

最も一般的な種は実際には setosa です!

例 2

prompt=‘What is the average of sepal_length?’

# PandasAI を呼び出し
pandas_ai = PandasAI(llm)

# PandasAI プロンプトを実行
pandas_ai.run(df, prompt='What is the average of sepal_length?')

データセットの sepal_length の平均は 5.84 です。

例 3

prompt=‘What is the average of sepal_width?’

# PandasAI を呼び出し
pandas_ai = PandasAI(llm)

# PandasAI プロンプトを実行
pandas_ai.run(df, prompt='What is the average of sepal_width?')

sepal_width の平均は 3.0573333333333337 です。

例 4

prompt=‘Which is the most common petal_length?’

# PandasAI を呼び出し
pandas_ai = PandasAI(llm)

# PandasAI プロンプトを実行
pandas_ai.run(df, prompt='Which is the most common petal_length?')

提供されたデータに基づくと、最も一般的な petal_length は 1.4 です。

PandasAI でグラフをプロットする

テキストだけでなく、PandasAI を使用してプロットやグラフを生成することもできます。これには有料の API キーが必要です。もしそうでない場合、RateLimitError が発生する可能性があります。定期的にプロンプトを実行してみるか、20秒ごとに実行してみてください。または有料プランを取得することもできます。

PandasAI での RateLimitError の処理

プロットやグラフの生成を始めると、おそらくRateLimitErrorに遭遇するでしょう。これは、無料のAPIキーを使用している人々が遭遇するものです。まず最初に有料プランを取得する方法があります。これにより、より多くのクレジットとリソースを得ることができ、要求の厳しいタスクを実行することができます。ただし、実験したいだけである場合や無料のキーにアクセスできる場合は、コードの実行方法を手動で制御する必要があります。無料アカウントでは、プロンプト間の間隔を約20秒に設定して、制限されたプロンプトのみを実行することが期待されています。これにより、コードを20秒の間隔で実行することができます。これは、高い需要によるユーザー間でサーバーを管理するためのものです。

例1

Prompt = ’「エントリのヒストグラムをプロットしてください。」

# PandasAIプロンプトの実行
response = pandas_ai.run(
    df,
    "エントリのヒストグラムをプロットしてください。",
)
print(response)

はい、データセットのエントリのヒストグラムです。sepal length、sepal width、petal length、petal width、およびspeciesの各変数の値の分布を示しています。ヒストグラムは、データを視覚化し、存在する可能性のあるパターンやトレンドを確認するための便利な方法です。

例2

Prompt = ‘sepal_lengthとsepal_widthの散布図を作成してください。

# PandasAIコマンドの実行
response = pandas_ai.run(
    df,
    "sepal_lengthとsepal_widthの散布図を作成してください。",
)
print(response)

はい!sepal_lengthとsepal_widthの散布図を作成するには、テーブルで提供されたデータを使用できます。テーブルにはsepal_length、sepal_width、petal_length、petal_width、およびspeciesの列が含まれています。プロットを作成するためには、sepal_lengthとsepal_widthの列に焦点を当てることができます。

例3

Prompt = “speciesのためのsepal_lengthとsepal_widthの散布図をプロットしてください。”

# PandasAIコマンドの実行
response = pandas_ai.run(
    df,
    "speciesのためのsepal_lengthとsepal_widthの散布図をプロットしてください。",
)
print(response)

はい!speciesのためのsepal_lengthとsepal_widthの散布図をプロットするには、sepal_length、sepal_width、petal_length、petal_width、およびspeciesの列を含む提供されたデータセットを使用できます。sepal_lengthをx軸に、sepal_widthをy軸にして散布図を作成することができます。これにより、データセットの各種の間に存在する可能性のある関係を視覚化することができます。

可能性はますます増えています。自分のコマンドを試してみて、どのように進行するかを確認してください。目標は、Generative artificial intelligenceがもたらす利点を享受することです。

結論

大規模な言語モデルを利用してデータセットから洞察を抽出することにより、Pandas AIはデータ分析を変革する可能性があることがわかりました。ただし、これには制約があり、正確性のために人間の検証が必要です。この問題は、プロンプトエンジニアリングを学ぶことで解決することができます。したがって、PandasAIはPandas + AIと言うことができます。具体的には、Pandas + Generative AIと言えます。これは、会話的なコマンドを通じてタスクと対話することを許可するコマンドを使用して、高度なNLPでプロンプトを処理し、他のタスクと結びつけることで可能となります。

要点

  • Generative AIの進歩により、データが崩壊し、ChatGPTやPandasAIなどの革新的なソリューションを探求する企業が増えています。これにより、データ分析と可視化が向上します。
  • PandasAIは、プロンプトエンジニアリングとGenAIの機能を利用して、Pandasの生産性を向上させるためにGenerative AIモデルを操作するPythonライブラリです。
  • Generative AIは時間を節約し、非技術的なシステム構築を会話的なコマンドを介して可能にします。

よくある質問(FAQ)

  • Githubコード:https://github.com/inuwamobarak/pandasAI
  • PandasAI:https://github.com/gventuri/pandas-ai
  • https://miro.medium.com/v2/resize:fit:1358/0*uPrVQazL1U4woEO9.png
  • Pandasaiのアート:https://github.com/gventuri/pandas-ai/blob/main/images/pandas-ai.png?raw=true

この記事で表示されるメディアはAnalytics Vidhyaの所有物ではなく、著者の裁量で使用されています。

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more