StreamlitでDataFrame表示とカラム選択機能を実装する方法

Python

Streamlitを使用して、PandasのDataFrameを表示し、ユーザーがGUI上でカラムの表示/非表示を設定できる機能を実装する方法を解説します。さらに、選択したカラムを設定ファイルとして保存します。

必要なライブラリ

以下のライブラリをインストールしてください:

pip install streamlit pandas

#サンプルデータフレーム作成用
pip install numpy 

コードの解説

以下に、コードの主要な部分を解説します。

1. ライブラリのインポートとデータの準備

import streamlit as st
import pandas as pd
import json
import os

# 設定ファイルの保存と読み込み
CONFIG_FILE = 'column_config.json'

def save_config(columns):
    config = {
        'selected_columns': columns,
    }
    with open(CONFIG_FILE, 'w') as f:
        json.dump(config, f)

def load_config():
    if os.path.exists(CONFIG_FILE):
        with open(CONFIG_FILE, 'r') as f:
            return json.load(f)
    return None


# サンプルデータフレームの作成
# 既存のデータフレームをつかう場合は以下不要
import numpy as np

df = pd.DataFrame(
    np.random.randn(20, 5),
    columns=['A', 'B', 'C', 'D', 'E']
)

ここでは、必要なライブラリをインポートし、設定ファイルの保存と読み込みを行う関数を定義しています。save_config関数では、選択されたカラムとその順序を保存します。

2. アプリケーションのタイトル設定と保存された設定の読み込み

st.title('データフレーム表示とカラム選択(カスタム順序保存機能付き)')

# 保存された設定の読み込み
saved_config = load_config()

# カラム選択のマルチセレクトボックス
if saved_config and 'selected_columns' in saved_config:
    default_columns = saved_config['selected_columns']
else:
    default_columns = df.columns.tolist()

selected_columns = st.multiselect(
    'カラムを選択してください:',
    df.columns.tolist(),
    default=default_columns
)

アプリケーションのタイトルを設定し、保存された設定を読み込みます。保存された設定がある場合は、それをデフォルト値として使用します。

3. 選択されたカラムの表示

if selected_columns:
    st.dataframe(df[selected_columns])
else:
    st.warning('カラムが選択されていません。少なくとも1つ選択してください。')

選択されたカラムがある場合は、st.dataframe()を使用してDataFrameを表示します。

この部分では、ユーザーが選択したカラムの順序を変更できるインターフェースを提供しています。各カラムに対して新しい位置を入力でき、その結果を反映した新しい順序でDataFrameを表示します。

4. 設定の保存

if st.button('選択したカラムと順序を保存'):
    save_config(selected_columns)
    st.success('設定が保存されました。')

「選択したカラムと順序を保存」ボタンをクリックすると、現在選択されているカラムとその順序を設定ファイルに保存し、成功メッセージを表示します。

アプリケーションの実行方法

  1. 上記のコードをapp.pyとして保存します。
  2. コマンドラインで以下のコマンドを実行します:
streamlit run app.py
  1. ブラウザが自動的に開き、アプリケーションが表示されます。

まとめ

このサンプルコードを使用することで、ユーザーはGUI上で簡単にDataFrameのカラムを選択し、必要な情報のみを表示することができます。選択したカラムを設定ファイルとして保存し、次回起動時に自動的に読み込むことができるようになりました。

コメント

タイトルとURLをコピーしました