PythonとStreamlitを使ったデータ分析サイトの高速開発

データ活用ことはじめ
StreamlitはPythonでWebアプリケーションを作成できるオープンソースのライブラリです。
Streamlitを使用すると、BIのようにユーザーが操作可能なグラフの作成や機械学習モデルの実行、可視化を実現できます。
また通常のWebアプリケーション作成に必要な細かなコーディングは、Streamlitではほとんど必要ありません。
そのため比較的簡単に、Webアプリケーション、データ分析サイトを作成することができます。
1.環境構築
まず、Streamlitをインストールします。
※コマンドプロンプト等で実施
pip install streamlit
前提として、Python3.7以上がインストールされている必要があります。
2.Streamlitの開発
基本的にコーディングはPythonで行います。
Streamlitは通常のアプリ同様、DBに接続しデータを取得することができますが、ここではCSVファイルを使用します。
データの取得
CSVファイルを読み込みます。
import streamlit as st import pandas as pd df = pd.read_csv('sales.csv')
グラフ表示
読み込んだデータを折れ線グラフに表示します。
st.line_chart(df, x='販売日', y='販売数', color='製品名')
※横軸=販売日、縦軸=販売数、色=製品名
Streamlitの実行
Streamlitを実行します。
※コマンドプロンプト等で実施
streamlit run app.py ※app.pyはファイル名
コマンドを実行するとブラウザが立ち上がり、以下のようなグラフが表示されます。

上記のように簡単に、データをグラフ表示することができました。
続いて画面入力によって、グラフの表示を変更させてみます。
製品名の選択
#製品名抽出 products = df["製品名"].unique() #製品名指定(複数可) products = st.multiselect( '製品指定', label_visibility="collapsed", options=products, default=products, key="products" ) #指定した製品名でデータを再抽出 df = df[df['製品名'].isin(products)]
再度Streamlitを実行すると、グラフの上に製品名の選択欄が表示されます。

スマホCをクリックすると、グラフからも非表示になりました。

3.まとめ
このように、Streamlitを使用すると簡単にデータ分析ができるWebアプリケーションを開発することができます。
またPythonのライブラリを利用することで、機械学習等の高度な分析も比較的簡単に行えます。
本記事がデータ分析やStreamlitの実装の一助となれば幸いです。
システムエグゼでは、今後もデータ分析など価値あるソリューションの提供に努めてまいります。
ご質問やご相談がございましたら、お気軽にお問い合わせください。