1. はじめに
Webアプリでよく見かける「連動コンボボックス」。たとえば「都道府県を選ぶと市区町村が変わる」「カテゴリを選ぶと商品が絞られる」といった動的な選択UIです。今回は、Python製の軽量Webフレームワーク「Streamlit」を使って、業種ごとに銘柄を絞り込み、企業情報を表示するアプリを作成します。
2. Streamlitとは?
Streamlitは、PythonコードだけでインタラクティブなWebアプリを構築できるツールです。データ分析、ダッシュボード、業務支援ツールなどに最適で、以下のように簡単にインストールできます。
pip install streamlit特徴:
- UIがシンプルで直感的
- 再実行型で動的な更新が可能
- データサイエンスや業務ツールに最適
3. 今回のテーマ:業種 × 銘柄 × 企業情報
今回作成するアプリでは、以下のような連動構成を実現します:
こんな感じです。

- 業種を選ぶと、その業種に属する銘柄が絞り込まれる
- 銘柄を選ぶと、企業情報(コード・社名・業種・銘柄名)が表示される
- すべての操作と情報表示はStreamlitのサイドバー(サブメニュー)に集約
4. 使用するデータ:日経225銘柄一覧(CSV)
このアプリでは、日経平均株価を構成する「日経225銘柄」の企業情報をCSV形式で使用します。データは以下のような構成です:
| コード | 銘柄名 | 社名 | 業種 |
|---|---|---|---|
| 7203 | トヨタ | トヨタ自動車(株) | 自動車 |
| 9432 | NTT | NTT(株) | 通信 |
| … | … | … | … |
このCSVファイル(例:nikkei225_stocks.csv)は、以下のブログで紹介されているPythonスクレイピング手法を参考にして取得・整形しました:
実装コード:Streamlitで連動コンボボックスを作成
import streamlit as st
import pandas as pd
# ページ設定:ワイド表示
st.set_page_config(page_title="企業情報ビューア", layout="wide")
# CSV読み込み
df = pd.read_csv("nikkei225_stocks.csv")
# サイドバーにUIを配置(業種 → 銘柄 → 企業情報)
with st.sidebar:
st.header("📊 業種と銘柄の選択")
# 業種を降順で表示
industries = sorted(df["業種"].unique(), reverse=True)
selected_industry = st.selectbox("業種を選択", industries)
# 業種に応じた銘柄名を表示
filtered_df = df[df["業種"] == selected_industry]
selected_brand = st.selectbox("銘柄名を選択", filtered_df["銘柄名"])
# 選択された企業情報を表示
selected_row = filtered_df[filtered_df["銘柄名"] == selected_brand].iloc[0]
st.markdown("---")
st.subheader("🏢 選択された企業情報")
st.markdown(f"### 🏷️ 銘柄名:**{selected_row['銘柄名']}**")
st.markdown(f"### 📌 コード:**{selected_row['コード']}**")
st.markdown(f"### 🏢 社名:**{selected_row['社名']}**")
st.markdown(f"### 📂 業種:**{selected_row['業種']}**")
# メイン画面は案内用に使用
st.title("企業情報ビューア")
st.write("サイドバーから業種と銘柄を選択すると、企業情報が表示されます。")
6. コンポーネント解説
✅ st.set_page_config
ページのレイアウトやタイトルを設定。layout="wide" にすると横幅を広く使える。
✅ st.sidebar
サイドバーにUIを配置するためのブロック。フィルターや設定項目に最適。
✅ st.selectbox
選択肢から1つを選ぶドロップダウン。選択値に応じて他のUIを動的に変化させられる。
7. 応用アイデア
- 都道府県 → 市区町村
- 商品カテゴリ → 商品名
- 国 → 州 → 都市
- 学部 → 学科 → コース
- 銘柄 → 株価チャート → 財務情報
8. おわりに
Streamlitを使えば、Pythonだけで動的なUIを簡単に構築できます。連動コンボボックスは業務ツールやデータ分析アプリでも活躍する機能です。今回のような企業情報ビューアは、CSVさえあればすぐに応用可能です。ぜひ自分のデータに合わせてカスタマイズしてみてください!



コメント