データ分析をするとき、他人と会話しながら実施することがあります。
Pandas AIはそれを実現します。
このPandas AIは生成AI機能を備えており、データフレームの操作を会話相手に変身させることができます。
ただ、Pandas AIはPandasの代わりになるライブラリー(パッケージ)ではなく、Pandasのデータ処理を補助するものです。
ということで、今回はPandasAIについて簡単に紹介します。
pipを用いたPandas AIのインストール
PandasAIを使うには、まず、pipを使ってインストールする必要があります。
以下、コードです。
pip install pandasai
PandasAIを使うには、OpenAI API Keyが必要です。まだの方は、OpenAIのアカウントを作成し、OpenAI API Keyを取得しておいてください。
以下で、OpenAIのアカウント作成と、OpenAI API Keyの取得方法について説明していますので、ご参考まで。
PandasAIを使った実施例
モジュールの読み込み
必要なモジュールを読み込みます。
以下、コードです。
# # モジュールの読み込み # import pandas as pd from pandasai import PandasAI from pandasai.llm.openai import OpenAI import matplotlib.pyplot as plt plt.style.use('ggplot') #グラフスタイル plt.rcParams['figure.figsize'] = [12, 9] # グラフサイズ
データの読み込み
次にデータを読み込みます。
World Happiness Report 2019 ( 世界幸福度調査レポート 2019) になります。
データ項目 |
意味 |
Overall rank | 幸福度ランク |
Country or region | 国・領域 |
Score | 幸福度 |
GDP per capita | 一人当たりのGDP |
Social support | ソーシャルサポート |
Healthy life expectancy | 健康寿命 |
Freedom to make life choices | 人生の選択をする自由 |
Generosity | 寛大さ |
Perceptions of corruption | 腐敗の認識 |
では読み込みます。
以下、コードです。
# # データセットの読み込み # url = 'https://www.salesanalytics.co.jp/edu6' df = pd.read_csv(url) print(df)
以下、実行結果です。
<span style="font-family: terminal, monaco, monospace; font-size: 10pt;"> Overall rank Country or region Score GDP per capita 0 1 Finland 7.769 1.340 \ 1 2 Denmark 7.600 1.383 2 3 Norway 7.554 1.488 3 4 Iceland 7.494 1.380 4 5 Netherlands 7.488 1.396 .. ... ... ... ... 151 152 Rwanda 3.334 0.359 152 153 Tanzania 3.231 0.476 153 154 Afghanistan 3.203 0.350 154 155 Central African Republic 3.083 0.026 155 156 South Sudan 2.853 0.306 Social support Healthy life expectancy Freedom to make life choices 0 1.587 0.986 0.596 \ 1 1.573 0.996 0.592 2 1.582 1.028 0.603 3 1.624 1.026 0.591 4 1.522 0.999 0.557 .. ... ... ... 151 0.711 0.614 0.555 152 0.885 0.499 0.417 153 0.517 0.361 0.000 154 0.000 0.105 0.225 155 0.575 0.295 0.010 Generosity Perceptions of corruption 0 0.153 0.393 1 0.252 0.410 2 0.271 0.341 3 0.354 0.118 4 0.322 0.298 .. ... ... 151 0.217 0.411 152 0.276 0.147 153 0.158 0.025 154 0.235 0.035 155 0.202 0.091 [156 rows x 9 columns]</span>
インスタンス生成
PandasAIのインスタンスを生成します。
以下、コードです。“your api key”に、あなたのOpenAI API Keyを入力してください。
# # PandasAIインスタンス生成 # # your api key OPENAI_API_KEY = "your api key" # OpenAIのllmインスタンス llm = OpenAI(api_token=OPENAI_API_KEY) # PandasAIインスタンス pandas_ai = PandasAI(llm)
promptに質問を入力し実行!
幸福度の高い国を聞いています。Top5です。
以下、コードです。
prompt='幸福度の高い国トップ5は?' pandas_ai.run(df, prompt=prompt)
以下、実行結果です。
<span style="font-family: terminal, monaco, monospace;">'The top five countries with the highest level of happiness are Finland, Denmark, Norway, Iceland, and the Netherlands.'</span>
日本語で質問しても英語で返ってきます。
以下、直訳です。
<span style="font-family: terminal, monaco, monospace;">幸福度の高い上位5カ国は、フィンランド、デンマーク、ノルウェー、アイスランド、オランダです。</span>
幸福度の高い上位5カ国のスコアを棒グラフで見てみましょう。せっかくなので、棒グラフの色を変えてみます。
以下、コードです。
prompt1 = '幸福度の高い国トップ5のScoreを、棒グラフでプロットしてください。' prompt2 = '国ごとに色を変えてください。' prompt = prompt1 + prompt2 pandas_ai.run(df, prompt=prompt)
以下、実行結果です。
全体と幸福度の高い国Top5を比較します。各変数の平均値を、折れ線グラフで表現します。
以下、コードです。
prompt1 = '幸福度の高い国トップ5と全体を、GDP per capita以降の変数の平均値で比較してください。' prompt2 = '折れ線グラフで比較してください。' prompt = prompt1 + prompt2 pandas_ai.run(df, prompt=prompt)
以下、実行結果です。
まとめ
今回は、AI機能(ChatGPT)を搭載したPandasである「PandasAI」について簡単に紹介しました。
Pandasだけだとできることが限られていますが、今後他のライブラリー(パッケージ)を含めた、このような拡張AIが出てくることでしょう。
非常に楽しみです。