1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[備忘録] Gemini APIのコード実行機能でデータ分析を自動化しよう

Posted at

はじめに

GoogleのGemini APIにはコード実行機能があり、自然言語の指示だけでPythonコードを生成・実行してデータ分析ができます。この記事では、シンプルな売上データを例に、この機能の使い方と利点を紹介します。

image.png

Gemini APIのコード実行機能とは?

Gemini APIのコード実行機能(ToolCodeExecution)を使うと、以下のことが自動で行われます:

  1. テキストによる指示からPythonコードを生成
  2. 生成したコードを安全な仮想環境で実行
  3. 実行結果を確認して必要に応じてコードを改良
  4. 最終的な分析結果や可視化結果を出力

これにより、データ分析の専門知識がなくても、日本語で「売上の傾向を分析して」と指示するだけで、グラフ付きの分析結果が得られます。

基本的な使い方

前提として、以下の実装はGoogle Colab上での動作を想定しています。

!pip -q install pydantic-ai
!pip -q install nest_asyncio

import nest_asyncio
nest_asyncio.apply()

print("Setup complete!")
from google import genai
from google.genai import types
from google.colab import userdata
import pandas as pd

# API設定
client = genai.Client(api_key=userdata.get('GEMINI_API_KEY'))

# コード実行機能を有効にしたチャット作成
chat = client.chats.create(
    model="gemini-2.0-flash",  
    config=types.GenerateContentConfig(
        tools=[types.Tool(code_execution=types.ToolCodeExecution)]
    ),
)

重要なポイント: types.Tool(code_execution=types.ToolCodeExecution)を指定することで、Geminiがコードを実行できるようになります。

実装例:売上データの自動分析

シンプルな売上データを使った例を見てみましょう:

# サンプルデータの作成
sales_data = pd.DataFrame({
    '': ['1月', '2月', '3月', '4月', '5月'],
    '売上': [120, 150, 180, 160, 200],
    '商品カテゴリ': ['家電', '服飾', '家電', '書籍', '服飾']
})

# データをCSV形式に変換
csv_str = sales_data.to_csv(index=False)

# Geminiに分析を依頼
prompt = f"""
以下の売上データを分析してください:

## 分析してほしいこと:
1. 月別の売上推移をグラフで表示
2. カテゴリ別の売上合計
3. 売上の傾向についてコメント

データ:
{csv_str}
"""

response = chat.send_message(prompt)

# 結果の表示
for part in response.candidates[0].content.parts:
    if part.text:
        print("分析結果:", part.text)
    if part.executable_code:
        print("実行されたコード:", part.executable_code.code)
    if part.code_execution_result:
        print("実行結果:", part.code_execution_result.output)

実行結果の例

Geminiは以下のようなコードを自動生成・実行します:

image.png

分析結果: 売上データを分析します。具体的には、以下の内容を実行します。

1.  月別の売上推移をグラフで表示
2.  カテゴリ別の売上合計を計算
3.  売上の傾向についてコメント

まずは、必要なデータを整理し、計算を行います。

実行されたコード: import pandas as pd
import matplotlib.pyplot as plt

data = {'月': ['1月', '2月', '3月', '4月', '5月'],
        '売上': [120, 150, 180, 160, 200],
        '商品カテゴリ': ['家電', '服飾', '家電', '書籍', '服飾']}

df = pd.DataFrame(data)

# 月別の売上推移グラフ
plt.figure(figsize=(8, 4))
plt.plot(df['月'], df['売上'], marker='o')
plt.title('月別売上推移')
plt.xlabel('月')
plt.ylabel('売上')
plt.grid(True)
plt.show()

# カテゴリ別の売上合計
category_sales = df.groupby('商品カテゴリ')['売上'].sum()
print("カテゴリ別売上合計:")
print(category_sales)

実行結果: カテゴリ別売上合計:
商品カテゴリ
家電    300
書籍    160
服飾    350
Name: 売上, dtype: int64

分析結果: 分析結果:

1.  **月別の売上推移**: 1月から5月にかけて、全体的に売上が増加傾向にあります。3月には一時的に増加し、4月には減少しましたが、5月には再び増加しています。

2.  **カテゴリ別の売上合計**: 服飾が350で最も高く、次いで家電が300、書籍が160となっています。

3.  **売上の傾向**: 全体的に売上が増加傾向にあり、特に服飾カテゴリの売上が好調です。家電製品も比較的高い売上を維持しています。書籍の売上は他のカテゴリと比較して低いですが、一定の需要があることがわかります。

などの洞察を自動で提供してくれます。

この機能の利点

Gemini APIのコード実行機能の主な利点は、プログラミングの知識がなくても自然言語の指示だけで迅速にデータ分析ができることです。分析結果を確認しながら対話的に追加の質問もでき、生成されたコードを見ることでデータ分析の手法も学習できます。

活用シーン

  • 売上レポートの自動生成
  • アンケート結果の分析
  • Webサイトのアクセス解析
  • ログデータの可視化
  • 障害票一覧の分析

テーブル形式でデータ構造が明確に決まっている場合や、分析内容がシンプルで具体的な場合は、うまく動作しやすいと感じました。

まとめ

Gemini APIのコード実行機能を使えば、自然言語で「このデータの傾向を教えて」と指示するだけで、コードの生成・実行・可視化までを自動で行ってくれます。

ただし、データ構造が複雑だったり、プロンプトが曖昧な場合はうまく動作しないことがあります。メタ情報を含めたデータの提示や、分析内容を明確に伝えることで、より安定した動作が確認できました。

参考リンク

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?