こんにちは。データサイエンティストやAIエンジニアの皆さん、Webアプリの開発に悩んでいませんか?
「Webアプリを作りたいけど、HTMLやCSSの知識がない…」
「機械学習モデルのデモアプリを素早く作りたい…」
「データ分析の結果をチームで共有したい…」
そんな悩みを抱えている方に朗報です。Pythonのフレームワーク「Streamlit」を使えば、高度なWeb開発の知識がなくても、データサイエンス関連のWebアプリを驚くほど短時間で開発できるんです!
本記事では、StreamlitでWebアプリ開発の生産性を爆速にする方法をご紹介します。Streamlitの特徴や使い方、活用例など、気になるポイントを詳しく解説していきますので、ぜひ最後までお付き合いください。
Streamlitとは?
Streamlitは、PythonでWebアプリケーションを構築するためのオープンソースのフレームワークです。特にデータサイエンスやAI・機械学習分野でのアプリ開発に特化しており、HTMLやCSSなどのWeb開発スキルがなくても、Pythonのコードだけでデータの可視化やモデルのデモアプリを簡単に作れるのが大きな特徴です。
通常のWebアプリ開発では、PythonでバックエンドロジックやAPIを実装し、HTMLやJavaScriptでフロントエンドUIを構築する必要があります。しかし、Streamlitを使えばそれらの手間が一切不要。Pythonスクリプトにコードを数行書くだけで、インタラクティブなWebアプリケーションが完成します。
データサイエンティストがWeb開発の専門知識を身につけなくても、自分の分析結果をアプリという形で発信できるようになるのは、Streamlitの大きなメリットと言えるでしょう。
Streamlitの主な特徴
Streamlitの主な特徴は以下の通りです。
- データサイエンティスト向けに設計された開発体験:HTMLやCSSを書く必要がなく、Pythonのコードだけでアプリ開発が完結する。
- 豊富なUIコンポーネント:グラフ、データフレーム、画像などのデータ可視化コンポーネントや、ボタン、選択ボックス、スライダーなどの入力ウィジェットを組み込める。
- インタラクティブなアプリ開発:リアルタイムにアプリのUIを更新できるため、試行錯誤しながらアプリを作り込める。
- ワンコマンドのデプロイ:
streamlit run
コマンド1つでアプリを起動でき、デプロイ作業も非常に簡単。 - 無料で使える:商用利用も含めて無料で利用可能。
これらの特徴により、Streamlitは短時間でデータ関連のアプリを開発したい場合に最適なツールと言えます。
Streamlitの使い方
それでは、Streamlitの基本的な使い方を見ていきましょう。
インストール
Streamlitは、以下のコマンドでインストールできます。pip install streamlit
pipを使って簡単にインストールできるので、Python環境さえあれば誰でも始められます。
アプリの作成
Streamlitアプリは、Pythonスクリプトに数行のStreamlitコードを書くだけで作成できます。以下は、最小限のStreamlitアプリの例です。import streamlit as st st.title('My first Streamlit app') st.write('Hello, world!')
このコードをapp.py
という名前で保存し、以下のコマンドを実行すると、アプリが起動します。streamlit run app.py
実行すると、自動的にブラウザが開き、アプリのページが表示されます。タイトルと「Hello, world!」というテキストが表示されているはずです。
この例からわかるように、Streamlitではわずか数行のPythonコードでWebアプリが作れてしまうのです。
UIコンポーネントの使用
Streamlitには、以下のようなUIコンポーネントが用意されています。
- テキスト:
st.title()
,st.header()
,st.subheader()
,st.text()
,st.markdown()
など - データ可視化:
st.dataframe()
,st.table()
,st.line_chart()
,st.area_chart()
,st.bar_chart()
,st.map()
など - メディア:
st.image()
,st.audio()
,st.video()
- 入力ウィジェット:
st.button()
,st.checkbox()
,st.radio()
,st.selectbox()
,st.multiselect()
,st.slider()
,st.text_input()
など - レイアウト:
st.columns()
,st.expander()
,st.container()
など
これらのコンポーネントを組み合わせることで、データの可視化とユーザー入力を備えた本格的なアプリが作れます。
以下は、データフレームとグラフを表示し、ボタンクリックでグラフを切り替える例です。import streamlit as st import pandas as pd import numpy as np st.title('Streamlit Demo') st.write('データフレームの表示:') df = pd.DataFrame(np.random.randn(20, 3), columns=['a', 'b', 'c']) st.dataframe(df) st.write('グラフの表示:') chart_data = pd.DataFrame(np.random.randn(20, 3), columns=['x', 'y', 'z']) if st.button('Line Chart'): st.line_chart(chart_data) elif st.button('Area Chart'): st.area_chart(chart_data) else: st.bar_chart(chart_data)
このように、Streamlitの各種コンポーネントを使えば、データ可視化とインタラクティブ性を備えたアプリが簡単に作れます。
アプリのデプロイ
作成したStreamlitアプリは、そのままWebサーバー上で公開することができます。以下のようなデプロイ方法があります。
- Streamlit Cloud:Streamlitの公式マネージドサービス。GitHubリポジトリと連携して、無料で簡単にアプリを公開できる。
- Heroku:Herokuの無料プランを使って、DockerコンテナでStreamlitアプリをデプロイできる。
- AWS EC2:AWSのクラウドサーバー上にStreamlitアプリをデプロイ。スケーラビリティに優れる。
- GCP App Engine:GoogleクラウドのPaaSサービス上にStreamlitアプリをデプロイ。
このように、Streamlitアプリのデプロイも非常に簡単です。本番環境への移行もスムーズに行えるでしょう。
Streamlitの活用例
Streamlitは、データサイエンスやAI分野を中心に、様々な場面で活用されています。以下は代表的なユースケースです。
- EDAツール:探索的データ解析(EDA)の結果をアプリで共有。データの可視化とフィルタリング機能を組み込んで、インタラクティブに分析できる。
- 機械学習アプリ:機械学習モデルのデモアプリを作成。ユーザーがデータを入力すると、リアルタイムに予測結果を返す。
- ダッシュボード:KPIのモニタリングや、リアルタイムデータの可視化に使える。
- データ入力アプリ:アノテーションツールの作成。画像や動画、テキストにラベル付けをする作業をWebアプリ化。
- APIクライアント:外部APIを呼び出して、レスポンスデータを可視化。
- Pythonツールのアプリ化:キャッシュ、ログ出力、テスト機能のあるツール/スクリプトをアプリ化。
- ブログ: データ分析の結果やモデルの解説などをWebアプリの形式のブログにまとめる
このように、Streamlitの使い道は多岐にわたります。Pythonでデータを扱う場面であれば、何にでも活用できるでしょう。
Streamlitに関する口コミ・評判
実際にStreamlitを使ったエンジニアやデータサイエンティストの感想をいくつか紹介します。
「Streamlitのおかげで、Webアプリ開発の工数が大幅に削減できました。機械学習モデルのプロトタイプを1日で作れるようになり、試行錯誤のスピードが上がりました。」(データサイエンティスト、3年目)
「Streamlitは本当に便利ですね。APIのレスポンスをそのまま可視化でき、データの流れが把握しやすくなりました。UIの作り込みも簡単にできるので、愛用しています。」(バックエンドエンジニア、5年目)
「ダッシュボード開発の生産性が上がりました。Flaskで似たようなアプリを作ろうとすると、フロントエンドの実装に時間がかかっていましたが、Streamlitならサクッと作れます。」(フロントエンドエンジニア、4年目)
「データ分析の結果を社内で共有する際に便利です。Jupyter Notebookだと実行環境が必要ですが、Streamlitならアプリ化してブラウザから見られるので、非エンジニアの人とも簡単に共有できます。」(データアナリスト、2年目)
口コミを見ると、Streamlitの高い生産性と使いやすさが評価されていることがわかります。特にデータ関連のタスクを担当するエンジニアやアナリストに愛用されているようですね。
Streamlitを使いこなすためのTips
最後に、Streamlitを活用する上で役立つTipsをいくつかご紹介します。
1. Streamlitドキュメントを活用する
Streamlitの使い方をマスターするには、公式ドキュメントを参照することが大切です。APIリファレンスや各種チュートリアルが充実しているので、ぜひ一読しておきましょう。
2. Streamlit Componentsを使う
Streamlitにはデフォルトで多数のUIコンポーネントが用意されていますが、さらに機能を拡張するためのプラグイン「Streamlit Components」も存在します。サードパーティ製のコンポーネントを使えば、アプリの表現の幅が広がるはずです。
3. デザインテンプレートを活用する
Streamlitのデザインをカスタマイズしたい場合は、デザインテンプレートを使うのがおすすめです。有志の開発者が作成したテンプレートをベースにすれば、見栄えの良いアプリを簡単に作れます。
4. 状態を管理する
Streamlitアプリでボタンクリックなどのイベントに反応して処理を行う場合、状態管理が重要になります。st.session_state
を使えばアプリの状態を管理でき、複雑な処理も実装しやすくなります。
5. 認証機能を追加する
社内向けのツールを作る場合など、アプリに認証機能が必要になることがあります。Streamlitでも、JWTなどを使ったログイン認証を実装できます。セキュリティ面にも気を配りましょう。
6. EXE化して配布する
アプリをPCで動かしたい場合はEXE化して配布するのも手段の1つです。PyInstallerを使えばStreamlitアプリを単一の実行ファイルにまとめられます。ただし依存関係などの扱いには注意が必要です。
以上、StreamlitでWebアプリ開発の生産性を高めるポイントをご紹介しました。
まとめ
Streamlitは、PythonでWebアプリ開発をする際の強力な味方です。HTMLやCSSを書かずにデータサイエンス関連のアプリが作れるのは、エンジニアの負担を大幅に下げてくれるでしょう。
本記事では、Streamlitの基本的な使い方から活用例、使いこなすためのTipsまで幅広く解説しました。
データサイエンティストやAIエンジニアの方は、ぜひStreamlitを使ってWebアプリ開発の생산성을высокめていってください。機械学習モデルのデモアプリを手早く作れるようになれば、モデル開発のPDCAサイクルもグッと早まわるはずです。
データ分析の現場でも、ダッシュボードや社内ツールの開発にStreamlitを使えば、エンジニアリングに割く工数を減らし、より分析タスクに集中できるようになるでしょう。
Streamlitは、データを扱うPythonエンジニア全てに役立つ、頼もしいフレームワークです。まだ使ったことがない方は、ぜひこの機会にチャレンジしてみてください。
「Streamlitと出会ってから、アプリ開発の楽しさを再発見できました。思いついたアイデアを即座に形にできる喜びは、エンジニアならきっと分かってもらえるはず。」(データサイエンティスト、4年目)
Streamlitで、Pythonエンジニアの創造力を存分に発揮できる日々を!
Streamlitのインストール手順まとめ
最後に、Streamlitのインストール手順を簡単におさらいしておきます。
1. Pythonのインストール
Streamlitを使うにはまずPythonが必要です。公式サイトから最新版をダウンロードしてインストールしましょう。
2. 仮想環境の作成(オプション)
プロジェクトごとに別の実行環境を用意したい場合は、venvなどで仮想環境を作成します。python -m venv myenv source myenv/bin/activate
3. Streamlitのインストール
pipを使ってStreamlitをインストールします。pip install streamlit
以上で環境構築は完了です。早速Streamlitを使ってアプリ開発を始めてみましょう!
Streamlitの実行方法
- アプリのスクリプト(
app.py
など)を作成 - 以下のコマンドを実行
streamlit run app.py
- ブラウザが自動的に開き、アプリが表示される
項目 説明 インストール pip install streamlit
起動 streamlit run app.py
終了 Ctrl+C デプロイ Streamlit Cloud, Herokuなど
以上、Streamlitについて詳しく解説してきました。
データサイエンスやAIの分野で活躍する全てのPythonエンジニアに、ぜひStreamlitを使ったアプリ開発をオススメします。
普段はデータ分析ばかりしている人も、Streamlitを使えばエンジニアリングの幅が広がるはずです。
「こんなアプリがあったらいいな」を、自分の手で実現できる。そんなStreamlitの可能性を、ぜひ体感してみてください。

最後までお読みいただき、ありがとうございました。Streamlitの活用法について、少しでも理解を深めていただけたら幸いです。
それでは、ハッピーなStreamlitライフを!
記事に関するご意見・ご感想はコメント欄で募集中です。Streamlitの面白い使い方などがあれば、ぜひ教えてください!