7. 複雑な業務ロジックを実装する
現実の業務では、「なんとなく分析したい」「もっと詳しく知りたい」という曖昧な要求が多く発生します。本章では、このような要求をプログラムで実現可能な形に変換する思考法とデータ理解の方法を身につけましょう。
要求を具体的なロジックに変換する
エンジニア的思考の基本は、問題の分解です。複雑な要求を、プログラムで処理しやすい小さな要素に分けて考えます。
例えば、「売上が悪い商品を分析したい」という要求があったとします。これをプログラムで処理できるようにするためには、以下のようなポイントについて考える必要があります。
- どの期間の売上を指しているか? ... 期間を定めないとデータ量が膨大になり、分析が困難になります。
- 何と比較して「悪い」と判断するか? ... 全ての商品の中で売り上げ点数が低いものを見るべきか? 同カテゴリー内で相対的にに売り上げ点数が低いものを見るべきか? 商品の価格は考慮すべきか?
このように、要求を小さな要素に分解することで、注目すべきデータの対象や分析の方向性を明確にすることができます。
Claude Codeと一緒にデータを探索する
次に、判断基準を定量化する必要があります。これは「売上が悪い」という主観的な判断を、「前年同期比80%以下」という具体的な条件に変換することです。このような定量化の際には、実際のデータを見ながら検討する必要があります。このように分析の方向性を決めるためにデータを探索することを 探索的データ分析 (EDA) と呼びます。
通常、EDAのためには専用のツールやJupyter Notebookなどのデータ分析環境が必要ですが、Streamlit + Claude Codeの環境ではこれもAIに依頼することで実現できます。
分析のアイデアを出し ~ 最初の実装
たとえば、分析のアイデア出しをClaude Codeに依頼してみましょう。
売上の悪い商品を分析するアイデアを出してください。
データセットの説明は、@README.md ファイルを参照した上で、実際のCSVファイルを読み込んで、正確にデータ構造を把握してから作業を始めてください。
すると以下のような提案が得られました。
今回は、「1. 売上数量ベースの分析」を依頼してみました。
最初に完成したページではエラーが出ていたので、エラーメッセージを送信して修正してもらいました。一度のエラー修正で以下のようなページが完成しました。
データを探索する
Claude Codeでは、エディター上で選択している範囲をコンテクストとして認識してくれるので、その範囲に対して指示を出すことができます。
例として、カテゴリー別分析の内容を、平均販売点数の上位のカテゴリ下位のカテゴリを比較するように変更してみましょう。 まずは、コードの中から該当箇所を探します。Claude Codeの出力するコードは基本的にコメントで説明がついているので、それを参考にして探します。
見つけたら、該当箇所を選択した状態で、Claude Codeに指示を出します。選択範囲が正しく認識されていれば、チャットの入力部分の下に xx lines selected という表示が出ているはずです。
このようにして、Claude Codeと一緒に、コードと結果を行ったり来たりしながらデータを探索することができます!
振り返り
本章では、Claude Codeとの対話を通じてデータ分析の方向性を探る、探索的データ分析の実践を体験してきました。
この手法を身につけたことで、実際の業務で生じた疑問や要求を、コードベースのBIとして表現することができるようになりました。ここまでできるようになれば、実践的なダッシュボードを構築することができるようになったと言えるでしょう。次はいよいよ完成したダッシュボードをチームに共有する方法について学びましょう。