📚

「Streamlit入門~Pythonで学ぶデータ可視化&アプリ開発ガイド~」を出版します。

2024/12/04に公開

前置き

こんにちは。データエンジニアの山口歩夢です!
この記事は、Streamlit Advent Calendar 2024 4日目の記事です。

https://qiita.com/advent-calendar/2024/genda

本題

先日、技術書典17にてStreamlitの技術書を頒布しました。
その技術書が商業本として、インプレスさんの「技術の泉シリーズ」として発売が決まりました。

image.png

Amazonや楽天など、色々なところから購入が可能です👇

https://www.amazon.co.jp/gp/product/4295603511/ref=as_li_tf_tl?ie=UTF8&camp=247&creative=1211&creativeASIN=4295603511&linkCode=as2&tag=impressrd-1-22

謝辞

今回、こちらの技術書の作成にあたって、
皆さんにレビューをしていただきました。
誠にありがとうございます:bow:

Streamlitとは

StreamlitはPythonのフレームワークです。
Streamlitを使うことで非常にシンプルなコードで、
高度でインタラクティブなアプリケーションを開発することができます。
データ分析やデータ可視化アプリ、機械学習モデルのデモアプリなどの開発に非常に有用です。

Streamlit Playgroundを使用することで、以下のように環境構築不要でブラウザ上でStreamlitを試すことができます。

image.png

上記の画像では、Playgroundに以下のコードを貼り付けています。
このように、非常に短いコードでインタラクティブなアプリケーションを作ることができます。
これがStreamlitの魅力です。

他にもインフラの知識が無くてもアプリケーションをデプロイできる、Streamlit in Snowflakeといった便利な機能もあります。

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

# サンプルデータ
np.random.seed(42)
data = pd.DataFrame({
    '日付': pd.date_range('2024-01-01', periods=100),
    '売上': np.random.randint(50, 150, size=100)  # 50~150のランダムな値
})

# タイトルの表示
st.title("Streamlitとは")

# スライダーでインデックス範囲を選択
start, end = st.slider("表示する範囲を選択", 0, 99, (0, 99))

# 選択範囲のデータを取得
filtered_data = data.iloc[start:end+1]

# 売上データをプロット
st.line_chart(filtered_data['売上'])

目次

以下が目次となっております。

image.png

Streamlitを使用する上で役立つ基本的な内容やStreamlitの仕組み、ユースケースを交えた実践的な内容を紹介しました。
そして、Streamlitでデータカタログを作成した話や、SnowflakeのLLMを活用してChatBotを開発する方法にも触れました。

第1章 Streamlitとは

こちらの章では、Streamlitとはどういうものなのかを解説しました。
Streamlitの特徴やStreamlitを使用するメリット、基本的な仕組みなどについて書いてあります。

image.png

image.png

第2章 基本的な機能

こちらの章では、Streamlitの基本的な機能について解説しました。
Streamlitの始め方の手順やアプリケーションの外観などの基本設定の方法、Streamlitでのアプリケーション開発に役立つ基本的な知識を解説しました。

Streamlitでのアプリケーション開発の効率アップに繋がるような知識をまとめてあります。

image.png

第3章 基本的な関数

こちらの章では、Streamlitに用意されている代表的な関数について解説しました。
これらの関数を活用することで、簡単且つ少ないコードでアプリケーション開発ができます。関数の使い方や関数に設定できるオプションについても、一つひとつ丁寧に解説しました。
関数毎に、簡単なアプリケーションのサンプルコードも添えました。

image.png

image.png

第4章 実践的なアプリケーション開発

こちらの章では、実践的なアプリケーション開発について解説しました。

まず、Snowflakeの無料アカウントの作成の方法や、
Streamlitを使って、Snowflakeのテーブルからデータを抽出・更新する方法。Streamlit in Snowflakeにアプリケーションをデプロイする方法などを紹介しました。
Snowflakeには、Streamlit in Snowflakeという機能があり、インフラの知識が無くても簡単にStreamlitのアプリケーションをデプロイすることができます。

上記に加え、実際の業務に役立ちそうなユースケースから、さまざまなアプリケーションの作り方を紹介しました。一つひとつサンプルコードの解説も行っております。

image.png

image.png

第5章 StreamlitとSnowflakeでのデータカタログの作成

こちらの章では、Streamlitでデータカタログを作成した話について解説しています。
Streamlitでデータカタログを作成するメリットやコードの解説、Streamlit in Snowflakeにアプリケーションをデプロイする方法や注意すべきポイントなども書いてあります。

image.png

image.png

第6章 StreamlitでChatBotを開発する

こちらの章では、StreamlitでChatBotを開発する方法を解説しました。
SnowflakeにはSnowflake CortexというLLM活用のための関数が用意されています。Snowflake CortexをStreamlitから実行して、簡単なChatBotの作成を行う方法を紹介しました。Snowflake Cortexの関数についても一つひとつ丁寧に解説しました。

image.png

image.png

まとめ

以上が「Streamlit入門~Pythonで学ぶデータ可視化&アプリ開発ガイド~」の内容です!
Streamlit Advent Calendar 2024のシリーズ1では、有志でStreamlitについて無料で学習できるコンテンツを作成しています。
是非こちらからもStreamlitについて、興味を持っていただけると嬉しいです!

https://qiita.com/advent-calendar/2024/streamlit

Discussion