データの謎を解く名探偵!pandas-aiで始める会話型データ分析
ソフトウェアエンジニアの皆さん、こんにちは!日々、データの海で奮闘していることと思います。ユーザーの行動分析、サービスのパフォーマンス監視、膨大なログからのエラー特定...。そんなとき、「このデータから、特定の期間のユーザーログイン数を教えて」「売上が一番高かった月のトップ10商品をリストアップして」といった質問に、SQLクエリを書いて、データフレームを操作して...と、一歩一歩手作業でデータを探索するのは大変ですよね。
ここで、探偵が登場します。あなたが抱えるデータという名の「未解決事件」を、pandas-ai という名の「名探偵」が、あなたの言葉(自然言語)で、まるで推理するかのように鮮やかに解決してくれます。
pandas-ai は、Pythonのデータ分析ライブラリである pandas にAIの力を組み合わせたツールです。これを使うと、自然言語でデータフレームに質問するだけで、データ分析ができてしまいます。裏側では、大規模言語モデル(LLM)と検索拡張生成(RAG)の技術が使われており、まるでデータベースと会話しているかのように、データ分析を進めることができるのです。
ソフトウェアエンジニアとして、pandas-aiは以下のような場面で非常に役立ちます。
開発中のデータ探索
新機能開発時に、過去のデータを分析して要件定義のヒントを得る。
デバッグ・エラー分析
ログデータから特定のパターンのエラーを素早く見つける。
パフォーマンスモニタリング
サービス指標(KPI)を簡単にチェックして、パフォーマンスの変化を追跡する。
プロトタイピング
分析ツールを本格的に開発する前の、迅速なデータ分析と可視化。
データ分析の専門知識がなくても、直感的にデータを扱えるようになるのが最大のメリットです。
まずは、pipを使ってpandas-aiをインストールしましょう。
pip install pandasai
次に、LLMのAPIキーを設定します。ここでは、OpenAIのAPIキーを例に説明します。os モジュールを使って環境変数として設定するのがおすすめです。
import os
os.environ["PANDASAI_API_KEY"] = "YOUR_API_KEY"
実際にpandas-aiを使ってみましょう。ここでは、簡単なCSVファイルを使って、データフレームに質問する例を紹介します。
import pandas as pd
from pandasai import SmartDataframe
# サンプルデータを作成
df = pd.DataFrame({
"country": ["United States", "United Kingdom", "France", "Germany", "Italy", "Spain", "Japan"],
"gdp": [19294482071552, 2891615567296, 2411236245040, 3435817336877, 1745672875200, 1181205135306, 5167018269777],
"happiness_index": [6.94, 7.16, 6.66, 7.07, 6.38, 6.4, 5.88]
})
# SmartDataframeに変換
sdf = SmartDataframe(df)
# 自然言語で質問
response = sdf.chat("gdpが最も高い国はどこですか?")
print(response)
# 複数の質問を組み合わせる
response2 = sdf.chat("gdpが最も高い国と、その国のhappiness_indexを教えてください。")
print(response2)
このコードを実行すると、pandas-aiがデータフレームを分析し、以下のような答えを返してくれます。
United States
The country with the highest GDP is United States, and its happiness index is 6.94.
pandas-aiは、データ可視化もお手の物です。グラフを生成するように指示することもできます。
import pandas as pd
from pandasai import SmartDataframe
# サンプルデータを作成
df = pd.DataFrame({
"product": ["Apple", "Orange", "Banana", "Grape", "Melon"],
"sales_q1": [120, 150, 80, 200, 90],
"sales_q2": [130, 160, 90, 190, 100],
"sales_q3": [140, 170, 100, 180, 110],
"sales_q4": [150, 180, 110, 170, 120]
})
# SmartDataframeに変換
sdf = SmartDataframe(df)
# 各四半期の売上合計を棒グラフで表示
sdf.chat("各四半期の売上合計を棒グラフで表示してください。")
このコードを実行すると、pandas-aiがsales_q1からsales_q4までの合計を計算し、棒グラフを自動で生成して表示します。
pandas-aiは、ソフトウェアエンジニアの皆さんのデータ分析の強力な味方になります。複雑なクエリやデータ操作を頭の中で組み立てる代わりに、「自然言語で質問する」 というシンプルなアプローチで、データの謎をスピーディーに解き明かすことができるのです。
ぜひ一度試してみて、その便利さを体感してみてください。あなたの探偵としてのデータ分析スキルが、きっと格段にアップするはずです。