PandasAIとは、AI機能(ChatGPT)を搭載したPandasである

PandasAIとは、AI機能(ChatGPT)を搭載したPandasである

データ分析をするとき、他人と会話しながら実施することがあります。

Pandas AIはそれを実現します。

このPandas AIは生成AI機能を備えており、データフレームの操作を会話相手に変身させることができます。

ただ、Pandas AIPandasの代わりになるライブラリー(パッケージ)ではなく、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が出てくることでしょう。

非常に楽しみです。