提案を書く
このレッスンでできるようになること。示唆を、来月やるべきことという行動提案の形に変換できるようになります。
前回のレポートは「何が起きているか」までを書きました。しかし読み手が本当に欲しいのは「だから何をすればいいか」です。この一歩を踏み出せるかどうかが、集計係と分析者を分けます。
提案の作り方は、示唆から機械的に導けます。示唆が「渋谷店の食器が3ヶ月連続で伸びている」なら、取れる行動は3つの方向にしかありません。伸びているものを伸ばす、落ちているものを立て直す、伸びている理由を他へ広げる。この3つのどれを選ぶかを決め、対象と期限と測り方を添えます。
良い提案には4つの要素が揃っています。何を(対象)、どうする(行動)、いつまでに(期限)、どうなったら成功か(指標)です。「食器を頑張る」は提案ではありません。「渋谷店の食器の売れ筋2品を横浜店の入口に置き、来月の横浜店の食器売上を前月比プラス10パーセントにする」なら提案です。後者は、実行できるかどうかも、成功したかどうかも判定できます。
提案を書くときに気をつけることが2つあります。1つめは、データが支えていないことを書かないことです。「SNS広告を出すべき」と書きたくなっても、手元のデータに広告の効果を示す情報が無いなら、それは提案ではなく思いつきです。書くなら「広告の効果は今回のデータでは判断できないため、次回は流入経路を記録したい」と、限界のほうを書きます。
2つめは、提案を1つに絞ることです。5つ並べると、実行されるのは0個です。最も効きそうな1つを選び、他は次回に回します。選ぶ基準は、効果の大きさと実行のしやすさの掛け算です。効果が小さくてもすぐできることは、意外に価値があります。
Python
recommendation = f"{混雑する会場}の受付方法を見直し、次回の待ち時間を10分以内にする"最後に、提案には必ず自分の判断が入ります。データは選択肢を絞ってくれますが、決めるのは人です。だから提案には「私はこう考える」という主語があってよいのです。そこまで書いて、分析はようやく仕事になります。
演習では、店舗×月表 table、直近月 last、前月 prev は準備済みです。前月が0だと率を計算できないため、その店舗を除いて比較します。列どうしの計算は、同じ行の値どうしで行われます。idxmax() は最大値、idxmin() は最小値の行ラベルを返します。
たとえば施設ごとの参加人数の変化なら、次のように比較できます。
Python
attendance = pd.DataFrame({"前回": [20, 40, 0], "今回": [30, 32, 8]}, index=["東会場", "西会場", "新会場"])
comparable = attendance.loc[attendance["前回"] != 0]
change = (comparable["今回"] - comparable["前回"]) / comparable["前回"]
largest = change.idxmax()
smallest = change.idxmin()!= 0 が0以外の行を選ぶ条件です。.loc[条件] でその行だけ残します。最大と最小が同率なら、元の表で先に並ぶラベルが選ばれます。演習の表は店舗名の昇順です。カテゴリの選択は _top_category が引き受けます。
長い提案文は、括弧の中に文字列を並べてつなげられます。たとえば会場の案内なら、次の形です。
Python
place = "東会場"
message = (
f"{place}の受付方法を共有し、"
"次回の待ち時間を10分以内にします"
)書く場所は、比較する店舗を選ぶ部分と、提案文を作る部分の2か所です。最大・最小は相対的な順位であり、常に増加店と減少店があるとは限りません。両者が同じ店舗になる入力もあります。この演習の文面は型の練習として固定し、実務では増減の実態やカテゴリ別推移を確認して表現を直します。
要件
- 店舗×月表 table、直近月 last、前月 prev、カテゴリ集計、返却辞書は準備済み
- 入力は同一年で2か月以上あり、売上は0以上。前月が正の店舗が少なくとも1つあるものとする
- 前月売上が0の店舗を除いて、(直近月 - 前月) / 前月 の伸び率を計算する
- rates.idxmax() の店舗を growing、rates.idxmin() の店舗を declining にする。同率なら表に並ぶ店舗名の昇順で先頭を選ぶ
- 最大の率も負なら growing は最も減少率の小さい店舗、最小の率も正なら declining は最も増加率の小さい店舗とする
- spread_item は growing の店舗の期間全体で売上合計が最大のカテゴリ。これは補助関数が求める
- action は「{growing}で売上が最も大きい{category}の売り方を{declining}に広げ、来月の{declining}の売上を前月比プラス{target}パーセントにする」とする