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

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

こんにちは、JS2IIUです。StreamlitでDataFrameを表示する際に日付選択の機能を使えます。日付に関する機能を提供するst.column_config.DateColumnについて紹介します。今回もよろしくお願いします。

はじめに

データフレームで日付データを操作する際、st.column_config.DateColumnを利用することで、日付の表示や管理を効率化できます。このクラスを使用すると、データのフォーマットや入力範囲を簡単に設定でき、アプリケーションの操作性が向上します。本記事では、DateColumnの基本的な設定方法と、実際のサンプルコードを基にした使い方を丁寧に解説します。

st.column_config.DateColumnとは

st.column_config.DateColumnは、Streamlitアプリケーションのデータフレーム内で日付データを表示・編集するためのカスタマイズ可能な列設定クラスです。このクラスを利用することで、以下のような機能を簡単に実現できます。

主な用途

主なオプション

基本例:プロジェクトの締切日を管理

この例では、プロジェクトの締切日を管理するデータフレームを作成し、DateColumnを使用して日付列をカスタマイズします。

サンプルコード

from datetime import datetime
import streamlit as st
import pandas as pd
from streamlit.column_config import DateColumn

# データフレームを作成
data = {
    "Project": ["Project A", "Project B", "Project C"],
    "Deadline": ["2024-11-30", "2024-12-15", "2025-01-10"]
}
df = pd.DataFrame(data)

# 日付列のデータ型を変換
df["Deadline"] = pd.to_datetime(df["Deadline"])

# DateColumnで列をカスタマイズ
column_config = {
    "Deadline": DateColumn(
        label="締切日",
        help="プロジェクトの締切日を確認してください",
        format="MMM Do, YYYY",  # 日付フォーマット
        min_value=datetime(2024, 11, 22),  # 入力可能な最小日付
        max_value=datetime(2025, 12, 31),  # 入力可能な最大日付
        step=1  # 1日単位で選択可能
    )
}

# カスタム列設定でデータフレームを表示
st.data_editor(df, column_config=column_config)
https://js2iiu.com/wp-content/uploads/2024/11/st_07_01.mov

解説

応用例:新規行のデフォルト値を設定

この応用例では、新しい行を追加する際に自動入力されるデフォルトの日付を設定します。

サンプルコード

from datetime import datetime
import streamlit as st
import pandas as pd
from streamlit.column_config import DateColumn

# データフレームを作成
data = {
    "Project": ["Project A", "Project B", "Project C"],
    "Deadline": ["2024-11-30", "2024-12-15", "2025-01-10"]
}
df = pd.DataFrame(data)

# 日付列のデータ型を変換
df["Deadline"] = pd.to_datetime(df["Deadline"])

# DateColumnで列をカスタマイズ
column_config = {
    "Deadline": DateColumn(
        label="締切日",
        help="プロジェクトの締切日を入力してください",
        default=datetime(2025, 1, 1),  # 新しい行に自動入力されるデフォルト値
        format="MMM Do, YYYY"
    )
}

# 新規行を追加可能にしてデータフレームを表示
st.data_editor(df, column_config=column_config, num_rows='dynamic', use_container_width=True)
https://js2iiu.com/wp-content/uploads/2024/11/st_07_02.mov

解説

注意点

まとめ

st.column_config.DateColumnを利用することで、Streamlitアプリケーションで日付データを効率的に管理・表示できます。基本例では日付フォーマットや入力範囲を設定する方法を、応用例では新規行にデフォルト値を設定する方法を解説しました。このクラスは締切日やイベント日など、日付を扱う幅広い用途で活用可能です。

次回は、時間情報に特化したst.column_config.TimeColumnについて解説します。お楽しみに!

参考リンク

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

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