pandasのdataframeをflaskのビューに表示する方法

はじめに

本記事では、PythonのWebフレームワークであるFlaskとデータ処理ライブラリのpandasを使用して、pandasのDataFrameをFlaskのビューに表示する方法について解説します。

Flaskとpandasのインストール

まずは、Flaskとpandasをインストールしましょう。

pip install flask
pip install pandas

また、表示に必要なライブラリとして、FlaskのテンプレートエンジンであるJinja2も必要です。

pip install jinja2

アプリケーションの設定

次に、Flaskアプリケーションの基本設定と、pandas DataFrameを扱う準備をします。

from flask import Flask, render_template
import pandas as pd
app = Flask(__name__)
# アプリケーションの設定
app.config['TEMPLATES_AUTO_RELOAD'] = True
# サンプルデータの読み込み
data = pd.read_csv('sample_data.csv')

データの準備

表示するためのサンプルデータセットを準備しましょう。ここでは、CSVファイルからデータを読み込みます。

data = pd.read_csv('sample_data.csv')
print(data)

上記のコードで、CSVファイルからデータを読み込み、DataFrameとして変数dataに格納しています。

読み込んだデータを確認するために、print関数でdataを出力してみましょう。

print(data)

ビュー関数の作成

pandas DataFrameをFlaskのビュー関数に渡すために、以下のようなビュー関数を作成します。

@app.route('/')
def index():
    return render_template('index.html', data=data)

上記のコードでは、FlaskのルートURL(‘/’)にアクセスした際に、index関数が呼び出されます。

index関数では、render_template関数を使用してindex.htmlテンプレートにdataを渡しています。

HTMLテンプレートの編集

最後に、DataFrameを適切に表示するためのHTMLテンプレートを作成しましょう。

index.htmlファイルを作成し、以下のようなコードを追加します。

<table>
    <thead>
        <tr>
            <th>{{ data.columns[0] }}</th>
            <th>{{ data.columns[1] }}</th>
            <th>{{ data.columns[2] }}</th>
        </tr>
    </thead>
    <tbody>
        {% for row in data.iterrows() %}
        <tr>
            <td>{{ row[1][0] }}</td>
            <td>{{ row[1][1] }}</td>
            <td>{{ row[1][2] }}</td>
        </tr>
        {% endfor %}
    </tbody>
</table>

上記のコードでは、pandas DataFrameのカラム名を表のヘッダーに表示し、各行のデータをテーブルに表示しています。

まとめ

以上で、pandasのDataFrameをFlaskのビューに表示する方法について紹介しました。Flaskとpandasを組み合わせることで、データの処理と表示を効率的に行うことができます。