本日は、Airbnbの売上データをデータベースに登録し、その結果、すべてのOTA(Airbnb、じゃらん、楽天トラベルなど)と自社予約データの登録が完了した。これにより、各プラットフォームの売上を統一的に管理・分析できる環境が整った。データを可視化するために、Streamlitを活用し、年度別・月別の売上推移を折れ線グラフと棒グラフで表示。また、売上データを表形式でも表示し、カテゴリー別・月別の詳細な分析が可能になった。
コード修正・エラー対応
- Airbnbのデータ登録時、日付フォーマットの不一致を修正し、統一(
YYYY-MM-DD
形式)。 total_payment
が文字列として登録される問題を修正し、数値型(float
)に変換。- すべてのOTAと自社予約データの売上を統合するため、データソースごとにカラムを標準化。
groupby()
の集計時に発生したNaN
値をfillna(0)
で補完し、グラフの欠損を防止。- 年度別折れ線グラフのデータを最新3年分に限定し、視認性を向上。
- Streamlitの
st.dataframe()
で売上データを表形式で表示し、カンマ区切りのフォーマットを適用。
データ処理・分析・可視化の進捗
- データ統合の完了: すべてのOTA(Airbnb、じゃらん、楽天トラベル)と自社予約データを統合し、統一的な管理が可能に。
- 年度別売上棒グラフ: OTAごと・年度ごとの売上データを
groupby(["年度", "category"])["total_payment"].sum()
で集計し可視化。 - 年度別月次売上折れ線グラフ: Fiscal Month(4月を1、3月を12とする)を適用し、月ごとの売上推移を比較。
- 売上データの表形式表示:
pivot()
を使用し、年度×月別の売上データを整理し、st.dataframe()
で表示。 - キャンセルデータの除外:
status
フィールドをフィルタリングし、売上データからキャンセル分を排除。
今後の進め方
- フィルタ機能の追加: Streamlitの
st.selectbox()
を活用し、OTA別の売上フィルタを追加。 - 売上分析の高度化: 売上成長率、前年比較、平均単価などの指標を算出。
- データ更新の自動化: 定期的な売上データの取得・登録スクリプトをスケジュール実行(
cron
など)。 - レポート機能の強化: PDFエクスポート・データダウンロード機能の追加を検討。
- ダッシュボードの改良: 売上データの可視化を強化し、さらに直感的なインターフェースを目指す。