Python

【Python】Streamlitとは?始め方、使い方を解説

Python

どうも、月見(@Suzuka14144156)です。

今回の記事では、PythonのライブラリであるStreamlitについて解説したいと思います。

よって、この記事では、このような悩みをお持ちの方におすすめです。

  • Streamlitとは
  • Streamlitのインストール方法は?
  • Streamlitってどのように使うの?
本記事のゴール
  • まずは、Streamlitの環境を整えて、動作させてみる
  • 動作させてみて、体感することで感触を得る
  • そうすることで、どのようなライブラリなのか、何が優れているのか?という点を把握することができると思います

Streamlitとは?

  •  Web アプリを数分で立ち上げることができるPythonのライブラリです

以下の動画が分かりやすいかと思います。

Streamlitを利用すると、以下のようなダッシュボードが作成可能です。

またWebに公開することも比較的容易に実現することができます。

具体的なイメージは、以下のリンク先から確認可能です。

App Gallery • Streamlit
Streamlit is an open-source Python framework for machine learning and data science teams. Create interactive data apps in minutes.

Streamlitのメリット

  • Pythonのみで記述できる(HTML,CSSは不要)
  • これまで作成したpyコードや、jupyternotebookを利用できること
  • デプロイ~公開までが簡単

とにかくクイックにできるのが非常に魅力です。

Streamlitが動作するまでの流れ

Streamlitが動作するまでの流れとしては、主に以下3つのステップを踏みます。

  • Streamlitのインストール
  • コーディング
  • コマンドプロンプトから「streamlit run 〇〇.py」で確認

Streamlitのインストール方法

Streamlitは、Pythonのライブラリなので、Pythonの環境を整える必要があります。

Pythonのインストール方法は、以下の記事を参考にしてみてください。

参考:【初心者向け】どうやるの?Pythonのインストール方法

pip

以下のコードをコマンドプロンプトから入力することでインストールが可能です。

pip install streamlit

Anaconda

Anaconda環境の方は、以下のコードをコマンドプロンプトから入力することでインストールが可能です。

conda install -c conda-forge streamlit

そもそもAnacondaをインストールしていないという方は、以下の記事を参考ください。

参考:Python Anacondaとは?|インストール〜Jupyter Notebookの立ち上げ

Streamlitの始め方

Streamlitのインストール完了後、以下のコマンドをコマンドプロンプトから入力ください。

streamlit hello

すると以下の画面が現れます。とりあえず何も入力しないでエンターキーを押します。

すると、Webブラウザに以下の画面が表示されるかと思います。

この画面が出力されれば、インストールは成功しています。

Streamlitの使い方の具体例

ウーバーのNYでのピックアップ状況を可視化するサイトを作ってみましょう。

以下のコードを適当なフォルダを作って、格納してください。

import streamlit as st
import pandas as pd
import numpy as np

st.title('Uber pickups in NYC')

DATE_COLUMN = 'date/time'
DATA_URL = ('https://s3-us-west-2.amazonaws.com/'
            'streamlit-demo-data/uber-raw-data-sep14.csv.gz')

@st.cache_data
def load_data(nrows):
    data = pd.read_csv(DATA_URL, nrows=nrows)
    lowercase = lambda x: str(x).lower()
    data.rename(lowercase, axis='columns', inplace=True)
    data[DATE_COLUMN] = pd.to_datetime(data[DATE_COLUMN])
    return data

data_load_state = st.text('Loading data...')
data = load_data(10000)
data_load_state.text("Done! (using st.cache_data)")

if st.checkbox('Show raw data'):
    st.subheader('Raw data')
    st.write(data)

st.subheader('Number of pickups by hour')
hist_values = np.histogram(data[DATE_COLUMN].dt.hour, bins=24, range=(0,24))[0]
st.bar_chart(hist_values)

# Some number in the range 0-23
hour_to_filter = st.slider('hour', 0, 23, 17)
filtered_data = data[data[DATE_COLUMN].dt.hour == hour_to_filter]

st.subheader('Map of all pickups at %s:00' % hour_to_filter)
st.map(filtered_data)

以下のようにします。

  • cmdと入力し、エンター

するとコマンドプロンプトが開きます。

streamlit run main.py

と入力し、エンターキーを押すと、Webブラウザが開きます。

これで、一連の流れが完了です。

  • 上記のようにスクリプトを実行するとすぐに、ローカルの Streamlit サーバーが起動し、デフォルトの Web ブラウザーの新しいタブでアプリが開きます。
  • つまり、「streamlit run 〇〇.py」と入力するだけで、簡単に動作確認ができるのが、streamlitの良いところ!

Streamlit関連の参考書や講座

Streamlitの参考書は、以下がオススメです。

Streamlitを扱うには、基本的なPythonのコード知識が必要です。

その場合は、以下の書物がオススメです。

Udemyのオンライン講座は、以下がオススメです。

Udemyは買い切りなので、一度購入してしまえば、何度でも閲覧できるのでオススメです。

現役シリコンバレーエンジニアが教えるPython 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル
現役シリコンバレーエンジニアが教えるPython入門!応用では、データ解析、データーベース、ネットワーク、暗号化、並列化、テスト、インフラ自動化、キューイングシステム、非同期処理など盛り沢山の内容です!

Streamlitの公式ドキュメント

今回解説した内容は、以下の公式サイトを参考にしています。

Streamlit Docs

Streamlit Share(Sharing)を使ってWebアプリを作成・公開する方法

Streamlit Share(Sharing)を使ってWebアプリを作成・公開する方法については、以下の記事を参考にしてみてください。

参考:Streamlit Share(Sharing)を使ってWebアプリを作成・公開する方法

まとめ

今回の記事では、PythonのライブラリであるStreamlitについて解説しました。

Streamlitとは、以下です。

  •  Web アプリを数分で立ち上げることができるPythonのライブラリです

とても簡単に実装できるので、オススメです。

ぜひ参考にしてみてください。

コメント

タイトルとURLをコピーしました