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の実装の一助となれば幸いです。
システムエグゼでは、今後もデータ分析など価値あるソリューションの提供に努めてまいります。
ご質問やご相談がございましたら、お気軽にお問い合わせください。

BI_banner01.png