こんにちは、JS2IIUです。
Pythonで作成したデータ分析や機械学習の結果を、誰でも操作できるWebアプリとして手軽に公開したい。その願いを驚くほど簡単に叶えてくれるのが、Streamlit(ストリームリット) です。
この記事では、Streamlitの概要、特徴、インストール方法、何ができるのか、そしてStreamlit Cloudによるデプロイ方法まで紹介していきます。
Streamlitとは?
Streamlit は、Pythonで書いたスクリプトをそのままWebアプリ化できる、オープンソースのフレームワークです。2022年にはSnowflake社に買収され、さらに注目が集まりました。
HTMLやCSS、JavaScriptの知識が一切なくても、数行のPythonコードでインタラクティブなWebアプリが作れる という点が最大の魅力です。
Streamlitの主な特徴
特徴を簡単にまとめてみます。
| 特徴 | 内容 |
|---|---|
| ✅ Pythonだけで作れる | フロントエンド不要。普段のPythonスクリプト感覚で開発できます。 |
| ✅ 豊富なUIウィジェット | ボタン、スライダー、テキスト入力など、直感的なUI部品が豊富です。 |
| ✅ データ可視化が得意 | Pandasの表やMatplotlib、Plotlyなどと連携してグラフ表示が可能です。 |
| ✅ 自動リロード機能あり | コードを保存するだけでアプリが即時更新されます。 |
| ✅ 無料でアプリを公開できる | GitHubと連携して、Streamlit Cloud上で簡単にデプロイできます。 |
できることの具体例(詳しく解説)
StreamlitはシンプルなUIアプリから本格的なデータツールまで、様々なアプリを作成できます。以下に実用的な例を挙げ、それぞれ詳しく説明します。
1. データ可視化ダッシュボード
CSVやExcelなどのデータファイルを読み込み、グラフや表を表示するダッシュボードが簡単に作れます。
例:売上データの可視化
import streamlit as st
import pandas as pd
import matplotlib.pyplot as plt
st.title("売上ダッシュボード")
df = pd.read_csv("sales.csv")
st.dataframe(df)
monthly_sales = df.groupby("month")["sales"].sum()
fig, ax = plt.subplots()
monthly_sales.plot(kind="bar", ax=ax)
st.pyplot(fig)2. 機械学習モデルのWebアプリ化
自作のモデルを使って、ユーザーが入力した値から 予測結果を返すアプリ が作れます。
例:住宅価格予測アプリ
import streamlit as st
import joblib
model = joblib.load("house_price_model.pkl")
st.title("住宅価格予測")
area = st.number_input("面積(㎡)")
rooms = st.slider("部屋数", 1, 5, 3)
if st.button("予測する"):
pred = model.predict([[area, rooms]])
st.success(f"予測価格: {int(pred[0]):,} 円")3. 入力フォーム付きツール
複数の入力項目を組み合わせて、データベースへの登録や、他システムとの連携が可能です。
例:書籍登録アプリ
st.header("書籍登録フォーム")
title = st.text_input("タイトル")
author = st.text_input("著者")
published = st.date_input("出版日")
if st.button("登録"):
st.success(f"{title}({author})を登録しました。")4. ファイルアップロード・変換アプリ
CSVやExcelファイルをアップロードして、特定の形式に変換・編集するアプリも簡単に作成可能です。
例:CSVファイルの加工&ダウンロード
uploaded = st.file_uploader("CSVファイルをアップロード", type="csv")
if uploaded:
df = pd.read_csv(uploaded)
st.dataframe(df)
df["新しい列"] = df["金額"] * 1.1
st.download_button("CSVとして保存", df.to_csv(index=False), "new_file.csv")Streamlitのインストール方法と起動手順
Step 1. インストール
以下のコマンドでStreamlitをインストールします:
pip install streamlitStep 2. アプリの作成
例えば、app.pyというファイルを作成し、次のように書きます:
import streamlit as st
st.title("はじめてのStreamlitアプリ")
st.write("こんにちは!Streamlitの世界へようこそ。")Step 3. 実行
以下のコマンドでアプリを起動します:
streamlit run app.pyブラウザが自動的に開き、http://localhost:8501 でアプリが表示されます。
Streamlit Cloudでアプリを公開する
作成したStreamlitアプリは、自分だけで使うだけでなく、インターネット上に公開して他人に共有することも可能です。それを無料で実現できるのが Streamlit Community Cloud です。
✅ GitHubアカウントがあればすぐに公開できる!
Streamlit Cloudでは、GitHub上にあるアプリのPythonコードを元に、簡単にデプロイできます。
公開までの流れ(ステップバイステップ)
- GitHubにリポジトリを作成
例:my-streamlit-appという名前で作成します。 - 作成したアプリファイル(例:app.py)をアップロード
- 必要であれば requirements.txt を追加
例:
streamlit
pandas
matplotlib- Streamlit Cloudにアクセス
👉 https://streamlit.io/cloud - GitHubアカウントでログイン
- 「New app」ボタンからアプリを作成
- GitHubのリポジトリを選択
- ブランチ名とPythonファイル名(例:
main,app.py)を指定 - 「Deploy」ボタンをクリック
- 数十秒でWebアプリが世界に公開!
公開されたURLを仲間と共有するだけで、誰でもアクセス可能になります。
補足:環境ファイルやAPIキーの管理
機密情報やAPIキーを使う場合は、.streamlit/secrets.toml ファイルを使って安全に管理できます。詳細は公式ドキュメントを参照してください。
まとめ
Streamlitは、Pythonエンジニアやデータサイエンティストが 爆速でWebアプリを作れる革新的なツール です。面倒なフロントエンドの開発は不要。コードを書いたらそのままアプリになり、公開もワンクリック。
使えば使うほど「これが欲しかった!」と思えるような機能が詰まっています。まずはローカルで試し、次にGitHub + Streamlit Cloudでアプリを世界に公開してみましょう。
🔗 参考リンク
さらに活用方法やサンプルコード、レイアウトの応用なども今後紹介していきますので、ぜひお楽しみに!
最後に、書籍のPRです。
最新のOpenAIのチャットAPIの使い方もしっかりと解説されている良書です。2024年11月初版発行、「LangChainとLangGraphによるRAG・AIエージェント[実践]入門」西見、吉田、大嶋著。
最後まで読んでいただきありがとうございます。


コメント