LoginSignup
0
1
生成AIに関する記事を書こう!
Qiita Engineer Festa20242024年7月17日まで開催中!

Ollama 経由で pandasai を活用したデータ分析してみる

Last updated at Posted at 2024-06-16

はじめに

今回は、Ollama 経由で pandasai を活用したデータ分析してみる方法を紹介します。この記事では、タイタニックのデータセットを使って具体的な実装例を示します。

前回以下の記事を投稿したのですが、その時よりは良い結果を得られました。

pandasaiとは?

pandasaiは、Pandasデータフレームを操作するためのインテリジェントなライブラリです。自然言語でのデータ操作を可能にし、データの可視化、データクレンジング、特徴量生成など、幅広い機能を提供します。これにより、データサイエンティストやアナリストがデータ操作をより直感的に行えるようになります。

主な機能

  • 自然言語でのクエリ: データに対して自然言語で質問を行い、その結果を得ることができます。
  • データ可視化: グラフやチャートを生成してデータを視覚的に表示します。
  • データクレンジング: 欠損値の処理やデータセットのクレンジングを行います。
  • 特徴量生成: データの品質を向上させるための特徴量を生成します。

Ollamaとは?

Ollamaは、LLama3やLLava、vicunaやPhiなどのオープンに公開されているモデルを手元のPCやサーバーで動かすことの出来るツールです。Ollamaをインストールしていて、モデルはllama3をダウンロードしている、前提で、以下の説明を進めます。

必要なライブラリのインストール

まず、以下のコマンドを実行して必要なライブラリをインストールします。

!pip install pandas langchain_community pandasai ollama

pandasaiの基本的な使い方

APIキーを使用する場合

pandasaiは、クラウドベースのLLMを利用するためにAPIキーを使用します。以下は、その設定方法と使用例です。

import os
import pandas as pd
from pandasai import Agent

# サンプルデータフレーム
sales_by_country = pd.DataFrame({
    "country": ["United States", "United Kingdom", "France", "Germany", "Italy", "Spain", "Canada", "Australia", "Japan", "China"],
    "sales": [5000, 3200, 2900, 4100, 2300, 2100, 2500, 2600, 4500, 7000]
})

# APIキーを環境変数として設定
os.environ["PANDASAI_API_KEY"] = "YOUR_API_KEY"

# エージェントの初期化
agent = Agent(sales_by_country)
response = agent.chat('Which are the top 5 countries by sales?')
print(response)

Ollama経由での使用

Ollamaを使用する場合は、APIキーが不要です。以下は、その設定方法と使用例です。

import pandas as pd
from langchain_community.llms import Ollama
from pandasai import SmartDataframe

# Ollamaモデルの初期化
llm = Ollama(model="llama3")

# サンプルデータとしてタイタニックのデータセットを読み込む
data = pd.read_csv(
    "https://raw.githubusercontent.com/pandas-dev/pandas/main/doc/data/titanic.csv"
)

# SmartDataframeの作成
df = SmartDataframe(data, config={"llm": llm})

# プロンプトを入力
prompt = input("プロンプトを入力してください: ")

if prompt:
    # 応答の生成
    response = df.chat(prompt)
    print("プロンプト:" + prompt)
    print("生成された応答:")
    print(response)
else:
    print("プロンプトを入力してください!")

実行例と出力

上記のコードを実行すると、プロンプトとして任意の質問を入力することで、データに基づいた応答を生成することができます。例えば、「how many rows are there in PassengerId?」と入力すると、その結果が表示されます。

image.png

image.png

image.png

まとめと結論

pandasaiは、APIキーを使用してクラウドベースのLLMを利用する方法と、Ollama経由でローカルのLLMを利用する方法の両方に対応しています。用途や環境に応じて使い分けることで、柔軟にデータ分析を行うことができます。Ollama経由でも、このタイタニックデータセットの内容であれば、上記のように自然言語でデータ分析できました。

詳しい情報や使用例については、公式ドキュメントを参照してください。

参考情報

Tirendaz AIチャンネルさん
この動画では、Streamlit、Ollama、PandasAIを使用してローカル環境で無料でデータ分析アプリを構築する方法を紹介します。セットアップからアプリの初期化、Ollamaの起動、モデルの初期化、推論の実行までの手順を解説します。

環境情報

google colab proで確認した

バージョン情報 Python 3.10.12 geopandas==0.13.2 ollama==0.2.1 pandas==1.5.3 pandas-datareader==0.10.0 pandas-gbq==0.19.2 pandas-stubs==2.0.3.230814 pandasai==2.2.1 sklearn-pandas==2.2.0
0
1
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
0
1