サイトアイコン アマチュア無線局JS2IIU

【Streamlit】st.column_config.ListColumnの基本と使い方

こんにちは、JS2IIUです。

Streamlitでのst.dataframest.data_editorでリスト要素を見やすく表示するためのst.column_config.ListColumnを紹介します。今回もよろしくお願いします。

はじめに

Streamlitのst.column_config.ListColumnは、データフレーム内でリスト形式のデータを管理しやすくするための機能です。リストデータを見やすく表示するだけでなく、操作性も向上させることができます。本記事では、ListColumnの基本的な機能とオプション、そして活用方法を具体的なサンプルコードと共に解説します。

st.column_config.ListColumnとは

st.column_config.ListColumnは、データフレームの列をリスト形式で表示するためのカスタムクラスです。この機能を使うと、各セルに複数のデータを含む列を視覚的に整えることができます。特に、タグやタスクリストなどのデータを扱う際に便利です。

主な用途

主なオプション

実際の使用例

以下は、プロジェクトごとに関連するタスクをリスト形式で管理する例です。

import streamlit as st
import pandas as pd
from streamlit.column_config import ListColumn

# データフレームを作成
data = {
    "Project": ["Project A", "Project B", "Project C"],
    "Tasks": [["Design", "Prototype", "Testing"], 
              ["Research", "Development"], 
              ["Planning", "Execution", "Review"]]
}
df = pd.DataFrame(data)

# ListColumnで列をカスタマイズ
column_config = {
    "Tasks": ListColumn(
        label="タスクリスト",
        width='large',
        help="プロジェクトに関連するタスクを表示します",
    )
}

# カスタム列設定でデータフレームを表示
st.dataframe(df, column_config=column_config)

サンプルコードの解説

1. データ作成

2. ListColumnの設定

3. データフレーム表示

応用例: タスク数によるプロジェクトのフィルタリング

以下のコードは、タスクが一定数以上のプロジェクトを抽出する方法を示しています。

import streamlit as st
import pandas as pd
from streamlit.column_config import ListColumn

# データフレームを作成
data = {
    "Project": ["Project A", "Project B", "Project C"],
    "Tasks": [["Design", "Prototype", "Testing"], 
              ["Research", "Development"], 
              ["Planning", "Execution", "Review"]]
}
df = pd.DataFrame(data)

# ListColumnで列をカスタマイズ
column_config = {
    "Tasks": ListColumn(
        label="タスクリスト",
        width='large',
        help="プロジェクトに関連するタスクを表示します",
    )
}

# カスタム列設定でデータフレームを表示
st.dataframe(df, column_config=column_config)

# タスク数を追加
df["Task Count"] = df["Tasks"].apply(len)

# タスクが2つ以上のプロジェクトを抽出
filtered_projects = df[df["Task Count"] >= 2]

# 結果を表示
st.write("タスクが2つ以上のプロジェクト:", filtered_projects)

ポイント

注意点

  1. リスト形式データの整合性

まとめ

st.column_config.ListColumnを使用することで、リスト形式のデータを扱うデータフレームを直感的で使いやすい形に整えることが可能です。タグやタスクリストの表示、データのフィルタリングなど、様々なシナリオで役立ちます。

次回の記事では、リンクデータを管理するst.column_config.LinkColumnについて解説します。どうぞお楽しみに!

公式ドキュメント: st.column_config.ListColumn

最後まで読んでいただきありがとうございます。73

モバイルバージョンを終了