{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "c67b3d86",
   "metadata": {},
   "source": [
    "# 赛迪与首都机场上线以来功能使用分析\n",
    "\n",
    "## tl;dr\n",
    "\n",
    "- 主口径从首个有效订单日统计至 2026-08-03：首都机场 2026-01-20 起累计 895,908 单；赛迪 2026-01-18 起累计 145,955 单。\n",
    "- 机场消费机占 89.43%、外部订单接入占 10.57%；赛迪消费机占 81.09%、闸机占 18.55%、线上订餐仅占 0.36%。\n",
    "- 机场累计报表导出 1,379 次但集中于 1 位操作者；赛迪累计限额拦截 210 次，257 条取餐记录全部停留在“备餐中”。\n",
    "- 近30天只用于观察变化，不能替代项目全生命周期结构。数据库业务表也不能替代页面点击流。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b41ce800",
   "metadata": {},
   "source": [
    "## Context & Methods\n",
    "\n",
    "- 可观察上线起点：首个满足 `pay_status=20 AND order_status=30 AND is_delete=0 AND user_id>0` 的订单 `meal_date`。\n",
    "- 起点代表数据库开始出现有效业务，不等于合同上线、部署或验收日期。\n",
    "- 有效订单按 `meal_date` 归属；订单流水为 `total_price` 合计，不等于收入或回款。\n",
    "- 近30天（2026-07-05 至 2026-08-03）与前30天（2026-06-05 至 2026-07-04）只作趋势补充。\n",
    "- 本目录只保存项目级聚合，不保存数据库凭据、人员、订单或日志明细。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "c26fddb6",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-04T11:21:51.455713Z",
     "iopub.status.busy": "2026-08-04T11:21:51.455546Z",
     "iopub.status.idle": "2026-08-04T11:21:52.114160Z",
     "shell.execute_reply": "2026-08-04T11:21:52.113844Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>project_key</th>\n",
       "      <th>observable_launch_date</th>\n",
       "      <th>observable_launch_definition</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>airport</td>\n",
       "      <td>2026-01-20</td>\n",
       "      <td>首个有效订单日</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>saidi</td>\n",
       "      <td>2026-01-18</td>\n",
       "      <td>首个有效订单日</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  project_key observable_launch_date observable_launch_definition\n",
       "0     airport             2026-01-20                      首个有效订单日\n",
       "1       saidi             2026-01-18                      首个有效订单日"
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from pathlib import Path\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "ROOT = Path.cwd()\n",
    "project_meta = pd.read_csv(ROOT / 'project_meta.csv')\n",
    "order_summary = pd.read_csv(ROOT / 'order_summary.csv')\n",
    "channel_mix = pd.read_csv(ROOT / 'channel_mix.csv')\n",
    "payment_mix = pd.read_csv(ROOT / 'payment_mix.csv')\n",
    "meal_mix = pd.read_csv(ROOT / 'meal_mix.csv')\n",
    "monthly_usage = pd.read_csv(ROOT / 'monthly_usage.csv')\n",
    "feature_activity = pd.read_csv(ROOT / 'feature_activity.csv')\n",
    "management_activity = pd.read_csv(ROOT / 'management_activity.csv')\n",
    "restaurant_rank = pd.read_csv(ROOT / 'restaurant_rank.csv')\n",
    "user_frequency = pd.read_csv(ROOT / 'user_frequency.csv')\n",
    "data_quality = pd.read_csv(ROOT / 'data_quality.csv')\n",
    "PROJECT_LABELS = {'airport': '首都机场', 'saidi': '赛迪物业'}\n",
    "project_meta[['project_key','observable_launch_date','observable_launch_definition']]"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5dd5ed7e",
   "metadata": {},
   "source": [
    "## Results\n",
    "\n",
    "### 1. 上线以来规模与近期趋势"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "9a451625",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-04T11:21:52.115777Z",
     "iopub.status.busy": "2026-08-04T11:21:52.115677Z",
     "iopub.status.idle": "2026-08-04T11:21:52.123524Z",
     "shell.execute_reply": "2026-08-04T11:21:52.123210Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>项目</th>\n",
       "      <th>可观察上线起点</th>\n",
       "      <th>累计订单</th>\n",
       "      <th>累计活跃用户</th>\n",
       "      <th>累计人均订单</th>\n",
       "      <th>累计流水</th>\n",
       "      <th>近30天订单</th>\n",
       "      <th>近30天订单环比</th>\n",
       "      <th>近30天用户环比</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>首都机场</td>\n",
       "      <td>2026-01-20</td>\n",
       "      <td>895908</td>\n",
       "      <td>8039</td>\n",
       "      <td>111.45</td>\n",
       "      <td>¥19,427,756.77</td>\n",
       "      <td>148050</td>\n",
       "      <td>+4.30%</td>\n",
       "      <td>+0.11%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>赛迪物业</td>\n",
       "      <td>2026-01-18</td>\n",
       "      <td>145955</td>\n",
       "      <td>3677</td>\n",
       "      <td>39.69</td>\n",
       "      <td>¥2,683,422.08</td>\n",
       "      <td>26703</td>\n",
       "      <td>+13.01%</td>\n",
       "      <td>+12.10%</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     项目     可观察上线起点    累计订单  累计活跃用户  累计人均订单            累计流水  近30天订单 近30天订单环比  \\\n",
       "0  首都机场  2026-01-20  895908    8039  111.45  ¥19,427,756.77  148050   +4.30%   \n",
       "1  赛迪物业  2026-01-18  145955    3677   39.69   ¥2,683,422.08   26703  +13.01%   \n",
       "\n",
       "  近30天用户环比  \n",
       "0   +0.11%  \n",
       "1  +12.10%  "
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "rows = []\n",
    "for key in ['airport', 'saidi']:\n",
    "    life = order_summary[(order_summary.project_key == key) & (order_summary.period == '上线以来')].iloc[0]\n",
    "    current = order_summary[(order_summary.project_key == key) & (order_summary.period == '近30天')].iloc[0]\n",
    "    previous = order_summary[(order_summary.project_key == key) & (order_summary.period == '前30天')].iloc[0]\n",
    "    rows.append({\n",
    "        '项目': PROJECT_LABELS[key], '可观察上线起点': life.start_date,\n",
    "        '累计订单': int(life.orders), '累计活跃用户': int(life.active_users),\n",
    "        '累计人均订单': life.orders_per_user, '累计流水': life.amount,\n",
    "        '近30天订单': int(current.orders), '近30天订单环比': current.orders / previous.orders - 1,\n",
    "        '近30天用户环比': current.active_users / previous.active_users - 1,\n",
    "    })\n",
    "summary_view = pd.DataFrame(rows)\n",
    "display_view = summary_view.copy()\n",
    "display_view['累计流水'] = display_view['累计流水'].map('¥{:,.2f}'.format)\n",
    "display_view['累计人均订单'] = display_view['累计人均订单'].map('{:.2f}'.format)\n",
    "display_view['近30天订单环比'] = display_view['近30天订单环比'].map('{:+.2%}'.format)\n",
    "display_view['近30天用户环比'] = display_view['近30天用户环比'].map('{:+.2%}'.format)\n",
    "display_view"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7c6b4c35",
   "metadata": {},
   "source": [
    "### 2. 上线以来功能渠道结构"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "fe8e01d5",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-04T11:21:52.125009Z",
     "iopub.status.busy": "2026-08-04T11:21:52.124903Z",
     "iopub.status.idle": "2026-08-04T11:21:52.225864Z",
     "shell.execute_reply": "2026-08-04T11:21:52.225562Z"
    }
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_71648/1091788839.py:8: UserWarning: Glyph 26377 (\\N{CJK UNIFIED IDEOGRAPH-6709}) missing from current font.\n",
      "  plt.tight_layout(); plt.show()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_71648/1091788839.py:8: UserWarning: Glyph 25928 (\\N{CJK UNIFIED IDEOGRAPH-6548}) missing from current font.\n",
      "  plt.tight_layout(); plt.show()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_71648/1091788839.py:8: UserWarning: Glyph 35746 (\\N{CJK UNIFIED IDEOGRAPH-8BA2}) missing from current font.\n",
      "  plt.tight_layout(); plt.show()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_71648/1091788839.py:8: UserWarning: Glyph 21333 (\\N{CJK UNIFIED IDEOGRAPH-5355}) missing from current font.\n",
      "  plt.tight_layout(); plt.show()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_71648/1091788839.py:8: UserWarning: Glyph 25968 (\\N{CJK UNIFIED IDEOGRAPH-6570}) missing from current font.\n",
      "  plt.tight_layout(); plt.show()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_71648/1091788839.py:8: UserWarning: Glyph 36187 (\\N{CJK UNIFIED IDEOGRAPH-8D5B}) missing from current font.\n",
      "  plt.tight_layout(); plt.show()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_71648/1091788839.py:8: UserWarning: Glyph 36842 (\\N{CJK UNIFIED IDEOGRAPH-8FEA}) missing from current font.\n",
      "  plt.tight_layout(); plt.show()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_71648/1091788839.py:8: UserWarning: Glyph 29289 (\\N{CJK UNIFIED IDEOGRAPH-7269}) missing from current font.\n",
      "  plt.tight_layout(); plt.show()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_71648/1091788839.py:8: UserWarning: Glyph 19994 (\\N{CJK UNIFIED IDEOGRAPH-4E1A}) missing from current font.\n",
      "  plt.tight_layout(); plt.show()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_71648/1091788839.py:8: UserWarning: Glyph 65372 (\\N{FULLWIDTH VERTICAL LINE}) missing from current font.\n",
      "  plt.tight_layout(); plt.show()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_71648/1091788839.py:8: UserWarning: Glyph 32447 (\\N{CJK UNIFIED IDEOGRAPH-7EBF}) missing from current font.\n",
      "  plt.tight_layout(); plt.show()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_71648/1091788839.py:8: UserWarning: Glyph 19978 (\\N{CJK UNIFIED IDEOGRAPH-4E0A}) missing from current font.\n",
      "  plt.tight_layout(); plt.show()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_71648/1091788839.py:8: UserWarning: Glyph 39184 (\\N{CJK UNIFIED IDEOGRAPH-9910}) missing from current font.\n",
      "  plt.tight_layout(); plt.show()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_71648/1091788839.py:8: UserWarning: Glyph 38392 (\\N{CJK UNIFIED IDEOGRAPH-95F8}) missing from current font.\n",
      "  plt.tight_layout(); plt.show()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_71648/1091788839.py:8: UserWarning: Glyph 26426 (\\N{CJK UNIFIED IDEOGRAPH-673A}) missing from current font.\n",
      "  plt.tight_layout(); plt.show()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_71648/1091788839.py:8: UserWarning: Glyph 39318 (\\N{CJK UNIFIED IDEOGRAPH-9996}) missing from current font.\n",
      "  plt.tight_layout(); plt.show()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_71648/1091788839.py:8: UserWarning: Glyph 37117 (\\N{CJK UNIFIED IDEOGRAPH-90FD}) missing from current font.\n",
      "  plt.tight_layout(); plt.show()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_71648/1091788839.py:8: UserWarning: Glyph 22330 (\\N{CJK UNIFIED IDEOGRAPH-573A}) missing from current font.\n",
      "  plt.tight_layout(); plt.show()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_71648/1091788839.py:8: UserWarning: Glyph 22806 (\\N{CJK UNIFIED IDEOGRAPH-5916}) missing from current font.\n",
      "  plt.tight_layout(); plt.show()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_71648/1091788839.py:8: UserWarning: Glyph 37096 (\\N{CJK UNIFIED IDEOGRAPH-90E8}) missing from current font.\n",
      "  plt.tight_layout(); plt.show()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_71648/1091788839.py:8: UserWarning: Glyph 25509 (\\N{CJK UNIFIED IDEOGRAPH-63A5}) missing from current font.\n",
      "  plt.tight_layout(); plt.show()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_71648/1091788839.py:8: UserWarning: Glyph 20837 (\\N{CJK UNIFIED IDEOGRAPH-5165}) missing from current font.\n",
      "  plt.tight_layout(); plt.show()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_71648/1091788839.py:8: UserWarning: Glyph 28040 (\\N{CJK UNIFIED IDEOGRAPH-6D88}) missing from current font.\n",
      "  plt.tight_layout(); plt.show()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_71648/1091788839.py:8: UserWarning: Glyph 36153 (\\N{CJK UNIFIED IDEOGRAPH-8D39}) missing from current font.\n",
      "  plt.tight_layout(); plt.show()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_71648/1091788839.py:8: UserWarning: Glyph 20197 (\\N{CJK UNIFIED IDEOGRAPH-4EE5}) missing from current font.\n",
      "  plt.tight_layout(); plt.show()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_71648/1091788839.py:8: UserWarning: Glyph 26469 (\\N{CJK UNIFIED IDEOGRAPH-6765}) missing from current font.\n",
      "  plt.tight_layout(); plt.show()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_71648/1091788839.py:8: UserWarning: Glyph 21151 (\\N{CJK UNIFIED IDEOGRAPH-529F}) missing from current font.\n",
      "  plt.tight_layout(); plt.show()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_71648/1091788839.py:8: UserWarning: Glyph 33021 (\\N{CJK UNIFIED IDEOGRAPH-80FD}) missing from current font.\n",
      "  plt.tight_layout(); plt.show()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_71648/1091788839.py:8: UserWarning: Glyph 28192 (\\N{CJK UNIFIED IDEOGRAPH-6E20}) missing from current font.\n",
      "  plt.tight_layout(); plt.show()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_71648/1091788839.py:8: UserWarning: Glyph 36947 (\\N{CJK UNIFIED IDEOGRAPH-9053}) missing from current font.\n",
      "  plt.tight_layout(); plt.show()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_71648/1091788839.py:8: UserWarning: Glyph 32047 (\\N{CJK UNIFIED IDEOGRAPH-7D2F}) missing from current font.\n",
      "  plt.tight_layout(); plt.show()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_71648/1091788839.py:8: UserWarning: Glyph 35745 (\\N{CJK UNIFIED IDEOGRAPH-8BA1}) missing from current font.\n",
      "  plt.tight_layout(); plt.show()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_71648/1091788839.py:8: UserWarning: Glyph 37327 (\\N{CJK UNIFIED IDEOGRAPH-91CF}) missing from current font.\n",
      "  plt.tight_layout(); plt.show()\n",
      "/opt/homebrew/Caskroom/miniforge/base/lib/python3.9/site-packages/IPython/core/pylabtools.py:152: UserWarning: Glyph 36187 (\\N{CJK UNIFIED IDEOGRAPH-8D5B}) missing from current font.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/opt/homebrew/Caskroom/miniforge/base/lib/python3.9/site-packages/IPython/core/pylabtools.py:152: UserWarning: Glyph 36842 (\\N{CJK UNIFIED IDEOGRAPH-8FEA}) missing from current font.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/opt/homebrew/Caskroom/miniforge/base/lib/python3.9/site-packages/IPython/core/pylabtools.py:152: UserWarning: Glyph 29289 (\\N{CJK UNIFIED IDEOGRAPH-7269}) missing from current font.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/opt/homebrew/Caskroom/miniforge/base/lib/python3.9/site-packages/IPython/core/pylabtools.py:152: UserWarning: Glyph 19994 (\\N{CJK UNIFIED IDEOGRAPH-4E1A}) missing from current font.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/opt/homebrew/Caskroom/miniforge/base/lib/python3.9/site-packages/IPython/core/pylabtools.py:152: UserWarning: Glyph 65372 (\\N{FULLWIDTH VERTICAL LINE}) missing from current font.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/opt/homebrew/Caskroom/miniforge/base/lib/python3.9/site-packages/IPython/core/pylabtools.py:152: UserWarning: Glyph 32447 (\\N{CJK UNIFIED IDEOGRAPH-7EBF}) missing from current font.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/opt/homebrew/Caskroom/miniforge/base/lib/python3.9/site-packages/IPython/core/pylabtools.py:152: UserWarning: Glyph 19978 (\\N{CJK UNIFIED IDEOGRAPH-4E0A}) missing from current font.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/opt/homebrew/Caskroom/miniforge/base/lib/python3.9/site-packages/IPython/core/pylabtools.py:152: UserWarning: Glyph 35746 (\\N{CJK UNIFIED IDEOGRAPH-8BA2}) missing from current font.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/opt/homebrew/Caskroom/miniforge/base/lib/python3.9/site-packages/IPython/core/pylabtools.py:152: UserWarning: Glyph 39184 (\\N{CJK UNIFIED IDEOGRAPH-9910}) missing from current font.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/opt/homebrew/Caskroom/miniforge/base/lib/python3.9/site-packages/IPython/core/pylabtools.py:152: UserWarning: Glyph 38392 (\\N{CJK UNIFIED IDEOGRAPH-95F8}) missing from current font.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/opt/homebrew/Caskroom/miniforge/base/lib/python3.9/site-packages/IPython/core/pylabtools.py:152: UserWarning: Glyph 26426 (\\N{CJK UNIFIED IDEOGRAPH-673A}) missing from current font.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/opt/homebrew/Caskroom/miniforge/base/lib/python3.9/site-packages/IPython/core/pylabtools.py:152: UserWarning: Glyph 39318 (\\N{CJK UNIFIED IDEOGRAPH-9996}) missing from current font.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/opt/homebrew/Caskroom/miniforge/base/lib/python3.9/site-packages/IPython/core/pylabtools.py:152: UserWarning: Glyph 37117 (\\N{CJK UNIFIED IDEOGRAPH-90FD}) missing from current font.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/opt/homebrew/Caskroom/miniforge/base/lib/python3.9/site-packages/IPython/core/pylabtools.py:152: UserWarning: Glyph 22330 (\\N{CJK UNIFIED IDEOGRAPH-573A}) missing from current font.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/opt/homebrew/Caskroom/miniforge/base/lib/python3.9/site-packages/IPython/core/pylabtools.py:152: UserWarning: Glyph 22806 (\\N{CJK UNIFIED IDEOGRAPH-5916}) missing from current font.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/opt/homebrew/Caskroom/miniforge/base/lib/python3.9/site-packages/IPython/core/pylabtools.py:152: UserWarning: Glyph 37096 (\\N{CJK UNIFIED IDEOGRAPH-90E8}) missing from current font.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/opt/homebrew/Caskroom/miniforge/base/lib/python3.9/site-packages/IPython/core/pylabtools.py:152: UserWarning: Glyph 21333 (\\N{CJK UNIFIED IDEOGRAPH-5355}) missing from current font.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/opt/homebrew/Caskroom/miniforge/base/lib/python3.9/site-packages/IPython/core/pylabtools.py:152: UserWarning: Glyph 25509 (\\N{CJK UNIFIED IDEOGRAPH-63A5}) missing from current font.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/opt/homebrew/Caskroom/miniforge/base/lib/python3.9/site-packages/IPython/core/pylabtools.py:152: UserWarning: Glyph 20837 (\\N{CJK UNIFIED IDEOGRAPH-5165}) missing from current font.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/opt/homebrew/Caskroom/miniforge/base/lib/python3.9/site-packages/IPython/core/pylabtools.py:152: UserWarning: Glyph 28040 (\\N{CJK UNIFIED IDEOGRAPH-6D88}) missing from current font.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/opt/homebrew/Caskroom/miniforge/base/lib/python3.9/site-packages/IPython/core/pylabtools.py:152: UserWarning: Glyph 36153 (\\N{CJK UNIFIED IDEOGRAPH-8D39}) missing from current font.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/opt/homebrew/Caskroom/miniforge/base/lib/python3.9/site-packages/IPython/core/pylabtools.py:152: UserWarning: Glyph 20197 (\\N{CJK UNIFIED IDEOGRAPH-4EE5}) missing from current font.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/opt/homebrew/Caskroom/miniforge/base/lib/python3.9/site-packages/IPython/core/pylabtools.py:152: UserWarning: Glyph 26469 (\\N{CJK UNIFIED IDEOGRAPH-6765}) missing from current font.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/opt/homebrew/Caskroom/miniforge/base/lib/python3.9/site-packages/IPython/core/pylabtools.py:152: UserWarning: Glyph 21151 (\\N{CJK UNIFIED IDEOGRAPH-529F}) missing from current font.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/opt/homebrew/Caskroom/miniforge/base/lib/python3.9/site-packages/IPython/core/pylabtools.py:152: UserWarning: Glyph 33021 (\\N{CJK UNIFIED IDEOGRAPH-80FD}) missing from current font.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/opt/homebrew/Caskroom/miniforge/base/lib/python3.9/site-packages/IPython/core/pylabtools.py:152: UserWarning: Glyph 28192 (\\N{CJK UNIFIED IDEOGRAPH-6E20}) missing from current font.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/opt/homebrew/Caskroom/miniforge/base/lib/python3.9/site-packages/IPython/core/pylabtools.py:152: UserWarning: Glyph 36947 (\\N{CJK UNIFIED IDEOGRAPH-9053}) missing from current font.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/opt/homebrew/Caskroom/miniforge/base/lib/python3.9/site-packages/IPython/core/pylabtools.py:152: UserWarning: Glyph 32047 (\\N{CJK UNIFIED IDEOGRAPH-7D2F}) missing from current font.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/opt/homebrew/Caskroom/miniforge/base/lib/python3.9/site-packages/IPython/core/pylabtools.py:152: UserWarning: Glyph 35745 (\\N{CJK UNIFIED IDEOGRAPH-8BA1}) missing from current font.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/opt/homebrew/Caskroom/miniforge/base/lib/python3.9/site-packages/IPython/core/pylabtools.py:152: UserWarning: Glyph 37327 (\\N{CJK UNIFIED IDEOGRAPH-91CF}) missing from current font.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/opt/homebrew/Caskroom/miniforge/base/lib/python3.9/site-packages/IPython/core/pylabtools.py:152: UserWarning: Glyph 26377 (\\N{CJK UNIFIED IDEOGRAPH-6709}) missing from current font.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/opt/homebrew/Caskroom/miniforge/base/lib/python3.9/site-packages/IPython/core/pylabtools.py:152: UserWarning: Glyph 25928 (\\N{CJK UNIFIED IDEOGRAPH-6548}) missing from current font.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/opt/homebrew/Caskroom/miniforge/base/lib/python3.9/site-packages/IPython/core/pylabtools.py:152: UserWarning: Glyph 25968 (\\N{CJK UNIFIED IDEOGRAPH-6570}) missing from current font.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n"
     ]
    },
    {
     "data": {
      "image/png": "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hoYGva4Qva4s/a4cva4cva4s/a4cva6c0djrI7m448ErAAAAGRHyAAAAMiLkjWHFYjFuvvnmKBaL1S4le3pdOXpdWfpdOXpdOXpdWfpdOXpdOWO914X0bs/fBAAAYMxwJQ8AACAjQh4AAEBGhDwAAICMCHlj1Je//OWYPn16jBs3LubNmxfbtm2rdklV9e1vfzt+/dd/PaZMmRKFQiEeeOCBsvGUUvzVX/1VnH766VFfXx+XXHJJvPDCC2VzXn/99Vi6dGk0NDTExIkT4w//8A+jp6enbM4PfvCD+OQnPxnjxo2LqVOnxhe/+MUhtdx///1x3nnnxbhx42LOnDnxzW9+85euZTRbv359/Oqv/mqceOKJMXny5Pit3/qteO6558rmvPHGG3H11VfHKaecEhMmTIjf+Z3fiZ/85Cdlc1566aW47LLLYvz48TF58uS4/vrr49ChQ2Vz2tvb44ILLohisRhnn312tLa2Dqnn3T4LR1LLaHbnnXfGRz7ykcHf03PRRRfFpk2bBsf1+ti59dZbo1AoxIoVKwa36ffIWLt2bRQKhbLXeeedNziuzyPrxz/+cfz+7/9+nHLKKVFfXx9z5syJJ554YnDcd+TImT59+pBzu1AoxNVXXx0Rzu2R9Oabb8ZNN90UM2bMiPr6+pg5c2Z84QtfiLc/buR9fW4nxpx777031dXVpX/5l39JO3fuTH/8x3+cJk6cmH7yk59Uu7Sq+eY3v5nWrFmTvv71r6eISBs3biwbv/XWW1OpVEoPPPBA+v73v59+4zd+I82YMSP19vYOzvm1X/u19NGPfjRt2bIl/fd//3c6++yz02c+85nB8c7OznTqqaempUuXph07dqSvfe1rqb6+Pt11112Dc77zne+k4447Ln3xi19MzzzzTPrLv/zLdPzxx6enn376l6plNGtubk5333132rFjR9q+fXu69NJL07Rp01JPT8/gnKuuuipNnTo1PfLII+mJJ55ITU1Naf78+YPjhw4dSh/+8IfTJZdckp566qn0zW9+M02aNCndeOONg3NefPHFNH78+PQXf/EX6Zlnnkl33HFHOu6449LmzZsH5xzJZ+HdahntHnzwwfSNb3wjPf/88+m5555Lq1evTscff3zasWNHSkmvj5Vt27al6dOnp4985CPp2muvHdyu3yPj5ptvTrNnz0579+4dfL322muD4/o8cl5//fV05plnppaWlrR169b04osvpoceeij98Ic/HJzjO3LkvPrqq2Xn9cMPP5wiIj322GMpJef2SFq3bl065ZRTUltbW9q1a1e6//7704QJE9KXvvSlwTnv53NbyBuDPvaxj6Wrr7568M9vvvlmmjJlSlq/fn0Vqxo9fjHkDQwMpNNOOy3ddtttg9v279+fisVi+trXvpZSSumZZ55JEZH+53/+Z3DOpk2bUqFQSD/+8Y9TSin93d/9XTrppJNSX1/f4JwbbrghnXvuuYN//r3f+7102WWXldUzb968tHz58iOuZax59dVXU0Skjo6OlNLP38/xxx+f7r///sE5zz77bIqI9N3vfjel9PNQXlNTk1555ZXBOXfeeWdqaGgY7O/KlSvT7Nmzy4716U9/OjU3Nw/++d0+C0dSy1h00kknpX/6p3/S62Oku7s7nXPOOenhhx9OCxYsGAx5+j1ybr755vTRj3502DF9Hlk33HBD+sQnPnHYcd+Rx9a1116bZs6cmQYGBpzbI+yyyy5LV155Zdm23/7t305Lly5NKTm33a45xhw8eDCefPLJuOSSSwa31dTUxCWXXBLf/e53q1jZ6LVr16545ZVXynpWKpVi3rx5gz377ne/GxMnToy5c+cOzrnkkkuipqYmtm7dOjjn//2//xd1dXWDc5qbm+O5556Lffv2Dc55+3HemvPWcY6klrGms7MzIiJOPvnkiIh48skno7+/v+w9nnfeeTFt2rSyfs+ZMydOPfXUwTnNzc3R1dUVO3fuHJzzTr08ks/CkdQylrz55ptx7733xs9+9rO46KKL9PoYufrqq+Oyyy4b0hP9HlkvvPBCTJkyJc4666xYunRpvPTSSxGhzyPtwQcfjLlz58bv/u7vxuTJk+P888+Pf/zHfxwc9x157Bw8eDC+8pWvxJVXXhmFQsG5PcLmz58fjzzySDz//PMREfH9738/Hn/88Vi0aFFEOLeFvDHm//7v/+LNN98s+/BHRJx66qnxyiuvVKmq0e2tvrxTz1555ZWYPHly2XhtbW2cfPLJZXOGW+PtxzjcnLePv1stY8nAwECsWLEiPv7xj8eHP/zhiPj5e6yrq4uJEyeWzf3FPhxtL7u6uqK3t/eIPgtHUstY8PTTT8eECROiWCzGVVddFRs3bowPfehDen0M3HvvvfG9730v1q9fP2RM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",
      "text/plain": [
       "<Figure size 900x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>项目</th>\n",
       "      <th>label</th>\n",
       "      <th>orders</th>\n",
       "      <th>active_users</th>\n",
       "      <th>amount</th>\n",
       "      <th>order_share</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>赛迪物业</td>\n",
       "      <td>消费机</td>\n",
       "      <td>118350</td>\n",
       "      <td>2131</td>\n",
       "      <td>1751612.08</td>\n",
       "      <td>0.810866</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>赛迪物业</td>\n",
       "      <td>闸机</td>\n",
       "      <td>27074</td>\n",
       "      <td>2016</td>\n",
       "      <td>812220.00</td>\n",
       "      <td>0.185496</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>赛迪物业</td>\n",
       "      <td>线上订餐</td>\n",
       "      <td>531</td>\n",
       "      <td>142</td>\n",
       "      <td>119590.00</td>\n",
       "      <td>0.003638</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>首都机场</td>\n",
       "      <td>消费机</td>\n",
       "      <td>801171</td>\n",
       "      <td>7879</td>\n",
       "      <td>14675748.98</td>\n",
       "      <td>0.894256</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>首都机场</td>\n",
       "      <td>外部订单接入</td>\n",
       "      <td>94737</td>\n",
       "      <td>3452</td>\n",
       "      <td>4752007.79</td>\n",
       "      <td>0.105744</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     项目   label  orders  active_users       amount  order_share\n",
       "6  赛迪物业     消费机  118350          2131   1751612.08     0.810866\n",
       "7  赛迪物业      闸机   27074          2016    812220.00     0.185496\n",
       "8  赛迪物业    线上订餐     531           142    119590.00     0.003638\n",
       "0  首都机场     消费机  801171          7879  14675748.98     0.894256\n",
       "1  首都机场  外部订单接入   94737          3452   4752007.79     0.105744"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lifetime_channels = channel_mix[channel_mix.period == '上线以来'].copy()\n",
    "lifetime_channels['项目'] = lifetime_channels.project_key.map(PROJECT_LABELS)\n",
    "lifetime_channels['功能渠道'] = lifetime_channels['项目'] + '｜' + lifetime_channels.label\n",
    "chart_data = lifetime_channels.sort_values('orders')\n",
    "ax = chart_data.plot.barh(x='功能渠道', y='orders', legend=False, figsize=(9, 4.8), color='#2474b5')\n",
    "ax.set_title('上线以来功能渠道累计订单量')\n",
    "ax.set_xlabel('有效订单数'); ax.set_ylabel(''); ax.grid(axis='x', alpha=.2)\n",
    "plt.tight_layout(); plt.show()\n",
    "lifetime_channels[['项目','label','orders','active_users','amount','order_share']].sort_values(['项目','orders'], ascending=[True,False])"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7523b4be",
   "metadata": {},
   "source": [
    "### 3. 上线以来月度趋势（首月与8月是不完整月）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "04ff6b7e",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-04T11:21:52.228425Z",
     "iopub.status.busy": "2026-08-04T11:21:52.228316Z",
     "iopub.status.idle": "2026-08-04T11:21:52.432889Z",
     "shell.execute_reply": "2026-08-04T11:21:52.432356Z"
    }
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_71648/1700064400.py:8: UserWarning: Glyph 35746 (\\N{CJK UNIFIED IDEOGRAPH-8BA2}) missing from current font.\n",
      "  plt.tight_layout(); plt.show()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_71648/1700064400.py:8: UserWarning: Glyph 21333 (\\N{CJK UNIFIED IDEOGRAPH-5355}) missing from current font.\n",
      "  plt.tight_layout(); plt.show()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_71648/1700064400.py:8: UserWarning: Glyph 25968 (\\N{CJK UNIFIED IDEOGRAPH-6570}) missing from current font.\n",
      "  plt.tight_layout(); plt.show()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_71648/1700064400.py:8: UserWarning: Glyph 39318 (\\N{CJK UNIFIED IDEOGRAPH-9996}) missing from current font.\n",
      "  plt.tight_layout(); plt.show()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_71648/1700064400.py:8: UserWarning: Glyph 37117 (\\N{CJK UNIFIED IDEOGRAPH-90FD}) missing from current font.\n",
      "  plt.tight_layout(); plt.show()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_71648/1700064400.py:8: UserWarning: Glyph 26426 (\\N{CJK UNIFIED IDEOGRAPH-673A}) missing from current font.\n",
      "  plt.tight_layout(); plt.show()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_71648/1700064400.py:8: UserWarning: Glyph 22330 (\\N{CJK UNIFIED IDEOGRAPH-573A}) missing from current font.\n",
      "  plt.tight_layout(); plt.show()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_71648/1700064400.py:8: UserWarning: Glyph 65372 (\\N{FULLWIDTH VERTICAL LINE}) missing from current font.\n",
      "  plt.tight_layout(); plt.show()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_71648/1700064400.py:8: UserWarning: Glyph 26376 (\\N{CJK UNIFIED IDEOGRAPH-6708}) missing from current font.\n",
      "  plt.tight_layout(); plt.show()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_71648/1700064400.py:8: UserWarning: Glyph 24230 (\\N{CJK UNIFIED IDEOGRAPH-5EA6}) missing from current font.\n",
      "  plt.tight_layout(); plt.show()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_71648/1700064400.py:8: UserWarning: Glyph 26377 (\\N{CJK UNIFIED IDEOGRAPH-6709}) missing from current font.\n",
      "  plt.tight_layout(); plt.show()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_71648/1700064400.py:8: UserWarning: Glyph 25928 (\\N{CJK UNIFIED IDEOGRAPH-6548}) missing from current font.\n",
      "  plt.tight_layout(); plt.show()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_71648/1700064400.py:8: UserWarning: Glyph 36187 (\\N{CJK UNIFIED IDEOGRAPH-8D5B}) missing from current font.\n",
      "  plt.tight_layout(); plt.show()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_71648/1700064400.py:8: UserWarning: Glyph 36842 (\\N{CJK UNIFIED IDEOGRAPH-8FEA}) missing from current font.\n",
      "  plt.tight_layout(); plt.show()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_71648/1700064400.py:8: UserWarning: Glyph 29289 (\\N{CJK UNIFIED IDEOGRAPH-7269}) missing from current font.\n",
      "  plt.tight_layout(); plt.show()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_71648/1700064400.py:8: UserWarning: Glyph 19994 (\\N{CJK UNIFIED IDEOGRAPH-4E1A}) missing from current font.\n",
      "  plt.tight_layout(); plt.show()\n",
      "/opt/homebrew/Caskroom/miniforge/base/lib/python3.9/site-packages/IPython/core/pylabtools.py:152: UserWarning: Glyph 35746 (\\N{CJK UNIFIED IDEOGRAPH-8BA2}) missing from current font.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/opt/homebrew/Caskroom/miniforge/base/lib/python3.9/site-packages/IPython/core/pylabtools.py:152: UserWarning: Glyph 21333 (\\N{CJK UNIFIED IDEOGRAPH-5355}) missing from current font.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/opt/homebrew/Caskroom/miniforge/base/lib/python3.9/site-packages/IPython/core/pylabtools.py:152: UserWarning: Glyph 25968 (\\N{CJK UNIFIED IDEOGRAPH-6570}) missing from current font.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/opt/homebrew/Caskroom/miniforge/base/lib/python3.9/site-packages/IPython/core/pylabtools.py:152: UserWarning: Glyph 39318 (\\N{CJK UNIFIED IDEOGRAPH-9996}) missing from current font.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/opt/homebrew/Caskroom/miniforge/base/lib/python3.9/site-packages/IPython/core/pylabtools.py:152: UserWarning: Glyph 37117 (\\N{CJK UNIFIED IDEOGRAPH-90FD}) missing from current font.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/opt/homebrew/Caskroom/miniforge/base/lib/python3.9/site-packages/IPython/core/pylabtools.py:152: UserWarning: Glyph 26426 (\\N{CJK UNIFIED IDEOGRAPH-673A}) missing from current font.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/opt/homebrew/Caskroom/miniforge/base/lib/python3.9/site-packages/IPython/core/pylabtools.py:152: UserWarning: Glyph 22330 (\\N{CJK UNIFIED IDEOGRAPH-573A}) missing from current font.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/opt/homebrew/Caskroom/miniforge/base/lib/python3.9/site-packages/IPython/core/pylabtools.py:152: UserWarning: Glyph 65372 (\\N{FULLWIDTH VERTICAL LINE}) missing from current font.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/opt/homebrew/Caskroom/miniforge/base/lib/python3.9/site-packages/IPython/core/pylabtools.py:152: UserWarning: Glyph 26376 (\\N{CJK UNIFIED IDEOGRAPH-6708}) missing from current font.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/opt/homebrew/Caskroom/miniforge/base/lib/python3.9/site-packages/IPython/core/pylabtools.py:152: UserWarning: Glyph 24230 (\\N{CJK UNIFIED IDEOGRAPH-5EA6}) missing from current font.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/opt/homebrew/Caskroom/miniforge/base/lib/python3.9/site-packages/IPython/core/pylabtools.py:152: UserWarning: Glyph 26377 (\\N{CJK UNIFIED IDEOGRAPH-6709}) missing from current font.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/opt/homebrew/Caskroom/miniforge/base/lib/python3.9/site-packages/IPython/core/pylabtools.py:152: UserWarning: Glyph 25928 (\\N{CJK UNIFIED IDEOGRAPH-6548}) missing from current font.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/opt/homebrew/Caskroom/miniforge/base/lib/python3.9/site-packages/IPython/core/pylabtools.py:152: UserWarning: Glyph 36187 (\\N{CJK UNIFIED IDEOGRAPH-8D5B}) missing from current font.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/opt/homebrew/Caskroom/miniforge/base/lib/python3.9/site-packages/IPython/core/pylabtools.py:152: UserWarning: Glyph 36842 (\\N{CJK UNIFIED IDEOGRAPH-8FEA}) missing from current font.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/opt/homebrew/Caskroom/miniforge/base/lib/python3.9/site-packages/IPython/core/pylabtools.py:152: UserWarning: Glyph 29289 (\\N{CJK UNIFIED IDEOGRAPH-7269}) missing from current font.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/opt/homebrew/Caskroom/miniforge/base/lib/python3.9/site-packages/IPython/core/pylabtools.py:152: UserWarning: Glyph 19994 (\\N{CJK UNIFIED IDEOGRAPH-4E1A}) missing from current font.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA94AAAKACAYAAABqnqAYAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAADPaElEQVR4nOzdeXiU5dXH8e9M9nWSANkgQNgJW9iJKIpGouCCogVFpYpSKFgBFaQqLrWlYK1LVahai28Vq1hFBQxEEFCJLGFHQJYgskxAIDMkZJ/n/SNkIBKEQJJZ8vtcVy6Z5zkzc5IzE3Pmvp/7NhmGYSAiIiIiIiIitcLs6gREREREREREvJkabxEREREREZFapMZbREREREREpBap8RYRERERERGpRWq8RURERERERGqRGm8RERERERGRWqTGW0RERERERKQWqfEWERERERERqUVqvEVERERERERqkRpvERERERERkVqkxltERERERESkFvm6OgEREZH6bOvWrXTt2hV/f/8qzxcXF7N+/frzxmzbto3CwkLF1UFcy5YtqzwvIiJyLmq8RUREXMgwDHr16sU333xT5fk+ffpccIzi6iZORESkujTVXERERERERKQWqfEWERERERERqUVqvEVERERERERqkRpvERERERERkVqkxltERERERESkFqnxFhEREREREalFarxFREREREREapEabxEREREREZFapMZbREREREREpBap8RYRERERERGpRWq8RURERERERGqRGm8RERERERGRWuTr6gRERETqu++++46IiIgqz+Xl5V1wjOLqLk5ERKQ6TIZhGK5OQkRERERERMRbaaq5iIiIiIiISC1S4y0iIiIiIiJSi9R4i4iIiIiIiNQiLa5WhxwOBwcPHiQsLAyTyeTqdEREREREROQiGYbBiRMniI+Px2z+9TFtNd516ODBgyQkJLg6DREREREREakhP/30E02aNPnVGDXedSgsLAwoL0x4eLiLszmbYRjYbDYsFotG5L2I6uo5VCvvpLp6B9XRO6mu3kO19E7uXle73U5CQoKzz/s1arzrUMWLJTw83G0bb8MwCA8Pd8sXtlwc1dVzqFbeSXX1Dqqjd1JdvYdq6Z08pa4XkpsWVxMRERERERGpRWq8RURERERERGqRSxvvFStWcOONNxIfH4/JZGLevHlnxWzbto2bbroJ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TkBERERERESkws1dErmhUzO+3XWIPTlHaRHTgL6t4jxypLuCGm8RERERERFxKz5mM1e0jqdzdAgWiwWT6VxXfnsGz/3IQERERERERMQDqPEWERERERERqUVqvEVERERERERqkRpvERERERERkVqkxdXqkGEYANjtdhdnUjXDMLDb7ZhMJo9fvEBOU109h2rlnVRX76A6eifV1Xuolt7J3eta0ddV9Hm/Ro13HTpx4gQACQkJLs5EREREREREasKJEyewWCy/GmMyLqQ9lxrhcDg4ePAgYWFhbvuJTUJCAj/99BPh4eGuTkdqiOrqOVQr76S6egfV0Tuprt5DtfRO7l5XwzA4ceIE8fHxmM+zx7hGvOuQ2WymSZMmrk7jvMLDw93yhS2XRnX1HKqVd1JdvYPq6J1UV++hWnond67r+Ua6K2hxNREREREREZFapMZbREREREREpBap8RangIAAnnrqKQICAlyditQg1dVzqFbeSXX1Dqqjd1JdvYdq6Z28qa5aXE1ERERERESkFmnEW0RERERERKQWqfEWERERERERqUVqvEVERERERERqkRpvERERERERkVqkxltERERERESkFqnxFhEREREREalFarxFREREREREapEabxEREREREZFapMZbREREREREpBap8RYRERERERGpRWq8RURERERERGqRGm8RERERERGRWqTGW0RERERERKQWqfEWERERERERqUVqvEVERERERERqka+rExAREanPtm7dSteuXfH396/yfHFxMevXrz9vzLZt2ygsLFRcHcS1bNmyyvMiIiLnosZbRETEhQzDoFevXnzzzTdVnu/Tp88FxyiubuJERESqS1PNRURERERERGqRGm8RERERERGRWqTGW0RERERERKQWqfEWERERERERqUVqvEVERERERERqkRpvERERERERkVqkxltERERERESkFqnxFhEREREREalFarxFREREREREapEabxEREREREZFapMZbREREREREpBap8RYRERERERGpRb6uTkBERKS+++6774iIiKjyXF5e3gXHKK7u4kRERKrDZBiG4eokRERERERERLyVppqLiIiIiIiI1CI13iIiIiIiIiK1yO0b75kzZ9K5c2fCw8MJDw8nJSWFL774wnm+sLCQsWPH0qBBA0JDQxkyZAg5OTmVHmPfvn0MGjSI4OBg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ACoXVNuwYQN79+7FYrEwZcoU/vznP/PZZ5+xceNGbr/9dmJjY90rn3fr1o0RI0Ywfvx41q1bxzfffMOkSZO46aabiI2NBeCWW27BZrMxduxYNm/ezMcff8zLL79c7TTx+++/n0WLFvH888+Tnp7OU089xfr165k0aVJTHxIREREREZEGFZ8yDiwWMAz2L5phdhyf4/GN9/r16+nbty99+/YFYOrUqfTt25cnnngCgIcffpjJkyczYcIE+vfvT35+PosWLSIoKMi9jw8++ICuXbsybNgwrrjiCn71q19Vu0e33W7nyy+/JCMjg379+vHggw/yxBNPVLvX9+DBg5kzZw5vvfUWvXv35tNPP2X+/Pn07Ok5q/6JiIiIiIjUR3B0Iq0vTAHgcNoiirJ/NjmRb/Gq+3h7O93HW8ygunoP1co3qa6+QXX0Taqr71AtG0bBwR38+JfRALQZeDWdbnvW1DyeXte69HceP+MtIiIiIiIija9FbCda9RkGwKF1Cyg+vN/kRL5DjbeIiIiIiIgAED/i+OW2rgoOfDnT3DA+RI23iIiIiIiIABCa0I2InkMAyP52PiXHHCYn8g1qvEVERERERMQtfuTdABgV5RxYMsvkNL5BjbeIiIiIiIi4tTyvF+HdBgOQ9c2/KXUeMjmR91PjLSIiIiIiItVUXettlJdyYOm7Jqfxfmq8RUREREREpJqwjhcS1qk/AFmrP6Es76jJibybGm8RERERERE5RcLIyllvV2kxB5e/b3Ia76bGW0RERERERE4R1nkALc/vA0Dmyg8pK3CaG8iLqfEWERERERGRU1gsFve13q6SQjK/+pfJibyXGm8RERERERGpUXj3i2nRrgcAmSvmUF6UZ3Ii76TGW0RERERERGpksVjc13pXFOXhWPmhyYm8kxpvEREREREROa2IXkMJiesCwMHl71NRXGByIu+jxltEREREREROq/Ja7/EAlBc4cXz9scmJvI8abxERERERETmjyD7JBMd0AODgsveoKC0yOZF3UeMtIiIiIiIiZ2SxWokfMQ6AsryjZK3+1ORE3kWNt4iIiIiIiJxV634jCIpqD8CBpbNxlZWYnMh7qPEWERERERGRs7JY/YgffnzW23mIrNR5JifyHmq8RUREREREpFZaD7iCwMhYAA58ORNXeZnJibyDGm8RERERERGpFatfAHHHZ71Ljzk4tPYzkxN5BzXeIiIiIiIiUmtRSb/FFhEDwP4v38GoKDc5kedT4y0iIiIiIiK1Zg2wEffruwAoObyfQ+v/Z3Iiz6fGW0REREREROokevA1BNjbALB/0QwMV4XJiTybGm8RERERERGpE2tAIHHJYwAozv6ZI99/aW4gD6fGW0REREREROos+lfX4R8aAcC+RW9huFwmJ/JcarxFRERERESkzvxswcQOuwOAosxdHP1pucmJPJcabxEREREREamXtkNuxL+FHYD9i97CMAyTE3kmNd4iIiIiIiJSL35BLWh72e8AKNiXzrFNq0xO5JnUeIuIiIiIiEi9tb30ZvyCQgHYv/BNzXrXQI23iIiIiIiI1Jt/SBhth94CQP7Pm3Cmp5qcyPOo8RYREREREZFz0vay32ENDAFgn2a9T6HGW0RERERERM5JQGg4MUNuBCBv1w/k7lhvciLPosZbREREREREzlnssNuxBgQBldd6yy+8vvF+6qmnsFgs1b66du3q3l5cXMzEiROJjIwkNDSU0aNHk5WVVW0fe/fu5corryQkJISoqCgeeughysvLq41ZsWIFF154IYGBgXTs2JHZs2c3xdsTERERERHxCraWkUT/6joAnNvXkbt7g7mBPIjXN94APXr0IDMz0/21evVq97YHHniAzz//nLlz57Jy5UoOHjzItdde695eUVHBlVdeSWlpKWvWrOHdd99l9uzZPPHEE+4xGRkZXHnllVx22WVs2LCBKVOmMG7cOBYvXtyk71NERERERMSTxSWPweJvAzTrfSJ/swM0BH9/f2JiYk553Ol08s477zBnzhwuv/xyAGbNmkW3bt349ttvGThwIF9++SVbtmxh6dKlREdH06dPH5599lkeeeQRnnrqKWw2G9OnTycxMZHnn38egG7durF69WpefPFFUlJSmvS9ioiIiIiIeCpbeBTRg6/BsepjcrZ8Q97Pm2jZvqfZsUznE433jh07iI2NJSgoiEGDBjFt2jTatWtHWloaZWVlJCcnu8d27dqVdu3akZqaysCBA0lNTaVXr15ER0e7x6SkpHDvvfeyefNm+vbtS2pqarV9VI2ZMmXKGXOVlJRQUlLi/j43NxcAwzA8cpW/qlyemE3qT3X1HqqVb1JdfYPq6JtUV9+hWnqW2OQ7yfrm3xgV5exf+BZd7365Xvvx9LrWJZfXN95JSUnMnj2bLl26kJmZydNPP80ll1zCpk2bcDgc2Gw2wsPDqz0nOjoah8MBgMPhqNZ0V22v2namMbm5uRQVFREcHFxjtmnTpvH000+f8rjT6fTIHx7DMMjPzwfAYrGYnEYaiurqPVQr36S6+gbV0Teprr5DtfQwfiHY+44gZ/0Cjm1cQdbW9QTFdqrzbjy9rlUTq7Xh9Y33yJEj3f++4IILSEpKon379nzyySenbYibyqOPPsrUqVPd3+fm5pKQkIDdbicsLMzEZDWr+jDAbrd75A+21I/q6j1UK9+kuvoG1dE3qa6+Q7X0PIFX3csP3y8EVwU533xIl3HP13kfnl7XumTy+sb7ZOHh4XTu3JmdO3fy61//mtLSUnJycqrNemdlZbmvCY+JiWHdunXV9lG16vmJY05eCT0rK4uwsLAzNveBgYEEBgae8njV6uue6MTV4cV3qK7eQ7XyTaqrb1AdfZPq6jtUS88S3CaBNv2v4NDazzm6YSlFmbsIie1Y5/14cl3rksknVjU/UX5+Prt27aJt27b069ePgIAAli1b5t6+bds29u7dy6BBgwAYNGgQGzduJDs72z1myZIlhIWF0b17d/eYE/dRNaZqHyIiIiIiIlJdfMo4ON6c7l88w+Q05vL6xvsPf/gDK1euZM+ePaxZs4ZrrrkGPz8/br75Zux2O2PHjmXq1Kl89dVXpKWlceeddzJo0CAGDhwIwPDhw+nevTu33XYbP/74I4sXL+bxxx9n4sSJ7tnqe+65h927d/Pwww+Tnp7O66+/zieffMIDDzxg5lsXERERERHxWMHRibS+sPIuUIfTFlOUtcfcQCby+sZ7//793HzzzXTp0oUbbriByMhIvv32W9q0aQPAiy++yFVXXcXo0aMZMmQIMTEx/Oc//3E/38/PjwULFuDn58egQYP43e9+x+23384zzzzjHpOYmMgXX3zBkiVL6N27N88//zxvv/22biUmIiIiIiJyBnEjxlf+w3Cxf/Hb5oYxkcXwxOW1fVRubi52ux2n0+mxi6s5nU6PXbxA6kd19R6qlW9SXX2D6uibVFffoVp6tvQZD3B0wzKw+nHhk58T1Dq+Vs/z9LrWpb/z+hlvERERERER8VwJI+6u/IerggNfvmNuGJOo8RYREREREZFG0yKhKxG9LgUg+9v/UnI00+RETU+Nt4iIiIiIiDSq+JGVs95GRTkHlswyOU3TU+MtIiIiIiIijapl+56EdxsMQNaa/1DqPGRyoqalxltEREREREQanXvWu7yUA0tnmxumianxFhERERERkUYX1qEvYZ37A5D19VxK846YnKjpqPEWERERERGRJpFwfNbbVVZM5rL3TU7TdNR4i4iIiIiISJMI69Sfluf3BSBz1UeU5eeYG6iJqPEWERERERGRJmGxWIgfOQEAV0khmSs+MDlR01DjLSIiIiIiIk0mvNtgQtv3BCBzxRzKi/JMTtT41HiLiIiIiIhIkzlx1ruiKI/MFR+anKjxqfEWERERERGRJhXR81JaxHcFIPOr96koLjA5UeNS4y0iIiIiIiJNymKxED9iPADlBU4cX39scqLGpcZbREREREREmlyr3sMIbtsBgIPL3qOitMjkRI1HjbeIiIiIiIg0OYvV6p71Lss7StbqT01O1HjUeIuIiIiIiIgpWl+YQlBUewAOLJ2Nq6zE5ESNQ423iIiIiIiImMJi9SM+ZRwAZc5DZKXOMzlR41DjLSIiIiIiIqZp3f8KAiPjADjw5Uxc5WUmJ2p4arxFRERERETENFa/AOJTxgJQeszBobWfmZyo4anxFhEREREREVO1SboaW0QMAPsXv42rwrdmvdV4i4iIiIiIiKms/gHE/fouAEqOHODwd/8zOVHDUuMtIiIiIiIiposefA0B9jYA7Fs0g5xta3H+uBTn9u8wXBUmpzs3/mYHEBEREREREbEGBBKXPIY9//47JYf2svWVCQAcAGzh0SRe/wiRfZLNDVlPmvEWERERERERjxAQFlnj46U52Wyb8SBHNixt4kQNQ423iIiIiIiImM5wVfDzvBdPtxWAjE//5pWnnavxFhEREREREdPl7vye0pysM4wwKD3mIHfn902WqaGo8RYRERERERHTleYeatBxnkSNt4iIiIiIiJjOFtamQcd5EjXeIiIiIiIiYrqwjhdiC48GLKcZYcEWEUNYxwubMlaDUOMtIiIiIiIiprNY/Ui8/pGq707eCkDidQ9jsfo1aa6GoMZbREREREREPEJkn2S6jH8eW3hUtcdtEdF0Gf+8197H29/sACIiIiIiIiJVIvsk0+qCy3DuSMPp2Is9ph32Tv28cqa7ima86+i1117jvPPOIygoiKSkJNatW2d2JBEREREREZ9isfph79wfe+9k7J37e3XT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",
      "text/plain": [
       "<Figure size 1000x650 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "monthly_usage['month_date'] = pd.to_datetime(monthly_usage.month + '-01')\n",
    "fig, axes = plt.subplots(2, 1, figsize=(10, 6.5), sharex=True)\n",
    "for ax, key, color in zip(axes, ['airport','saidi'], ['#0b6e99','#c56a2d']):\n",
    "    frame = monthly_usage[monthly_usage.project_key == key]\n",
    "    ax.plot(frame.month_date, frame.orders, marker='o', color=color, linewidth=1.8)\n",
    "    ax.set_title(f\"{PROJECT_LABELS[key]}｜月度有效订单\")\n",
    "    ax.set_ylabel('订单数'); ax.grid(alpha=.2)\n",
    "plt.tight_layout(); plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e68a9d57",
   "metadata": {},
   "source": [
    "### 4. 累计高频用户与场景集中度"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "e3ab4d95",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-04T11:21:52.434789Z",
     "iopub.status.busy": "2026-08-04T11:21:52.434672Z",
     "iopub.status.idle": "2026-08-04T11:21:52.441143Z",
     "shell.execute_reply": "2026-08-04T11:21:52.440888Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>项目</th>\n",
       "      <th>21次以上用户占比</th>\n",
       "      <th>21次以上用户订单贡献</th>\n",
       "      <th>Top3餐厅订单占比</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>首都机场</td>\n",
       "      <td>84.55%</td>\n",
       "      <td>98.86%</td>\n",
       "      <td>38.61%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>赛迪物业</td>\n",
       "      <td>37.86%</td>\n",
       "      <td>87.47%</td>\n",
       "      <td>91.99%</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     项目 21次以上用户占比 21次以上用户订单贡献 Top3餐厅订单占比\n",
       "0  首都机场    84.55%      98.86%     38.61%\n",
       "1  赛迪物业    37.86%      87.47%     91.99%"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "concentration = []\n",
    "for key in ['airport', 'saidi']:\n",
    "    f = user_frequency[(user_frequency.project_key == key) & (user_frequency.period == '上线以来')]\n",
    "    high = f[f.frequency_bucket == '21次以上'].iloc[0]\n",
    "    r = restaurant_rank[restaurant_rank.project_key == key].sort_values('rank')\n",
    "    concentration.append({\n",
    "        '项目': PROJECT_LABELS[key],\n",
    "        '21次以上用户占比': high.users / f.users.sum(),\n",
    "        '21次以上用户订单贡献': high.orders / f.orders.sum(),\n",
    "        'Top3餐厅订单占比': r.head(3).orders.sum() / r.orders.sum(),\n",
    "    })\n",
    "concentration_display = pd.DataFrame(concentration)\n",
    "for column in ['21次以上用户占比','21次以上用户订单贡献','Top3餐厅订单占比']:\n",
    "    concentration_display[column] = concentration_display[column].map('{:.2%}'.format)\n",
    "concentration_display"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f4a35bc4",
   "metadata": {},
   "source": [
    "### 5. 上线以来功能证据与后台管理"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "fd3185cb",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-04T11:21:52.442561Z",
     "iopub.status.busy": "2026-08-04T11:21:52.442470Z",
     "iopub.status.idle": "2026-08-04T11:21:52.448330Z",
     "shell.execute_reply": "2026-08-04T11:21:52.448090Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>project_name</th>\n",
       "      <th>feature</th>\n",
       "      <th>evidence_type</th>\n",
       "      <th>lifetime_records</th>\n",
       "      <th>lifetime_distinct_actors</th>\n",
       "      <th>current_30d_records</th>\n",
       "      <th>previous_30d_records</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>首都机场智慧营养健康餐厅</td>\n",
       "      <td>实体卡建档</td>\n",
       "      <td>配置/建档</td>\n",
       "      <td>11016</td>\n",
       "      <td>9170</td>\n",
       "      <td>85</td>\n",
       "      <td>101</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>首都机场智慧营养健康餐厅</td>\n",
       "      <td>退款申请</td>\n",
       "      <td>主动业务动作</td>\n",
       "      <td>1473</td>\n",
       "      <td>958</td>\n",
       "      <td>187</td>\n",
       "      <td>228</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>首都机场智慧营养健康餐厅</td>\n",
       "      <td>后台报表导出</td>\n",
       "      <td>主动业务动作</td>\n",
       "      <td>1379</td>\n",
       "      <td>1</td>\n",
       "      <td>192</td>\n",
       "      <td>132</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>首都机场智慧营养健康餐厅</td>\n",
       "      <td>就餐评价</td>\n",
       "      <td>主动业务动作</td>\n",
       "      <td>72</td>\n",
       "      <td>50</td>\n",
       "      <td>6</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>首都机场智慧营养健康餐厅</td>\n",
       "      <td>消费限额拦截</td>\n",
       "      <td>规则触发记录</td>\n",
       "      <td>23</td>\n",
       "      <td>8</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>首都机场智慧营养健康餐厅</td>\n",
       "      <td>餐单预约</td>\n",
       "      <td>主动业务动作</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>首都机场智慧营养健康餐厅</td>\n",
       "      <td>就餐考勤</td>\n",
       "      <td>业务流程记录</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>首都机场智慧营养健康餐厅</td>\n",
       "      <td>线上充值</td>\n",
       "      <td>主动业务动作</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>首都机场智慧营养健康餐厅</td>\n",
       "      <td>AI 营养对话</td>\n",
       "      <td>主动业务动作</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>首都机场智慧营养健康餐厅</td>\n",
       "      <td>签到打卡</td>\n",
       "      <td>主动业务动作</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>首都机场智慧营养健康餐厅</td>\n",
       "      <td>人脸建档</td>\n",
       "      <td>配置/建档</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>首都机场智慧营养健康餐厅</td>\n",
       "      <td>采购单</td>\n",
       "      <td>主动业务动作</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25</th>\n",
       "      <td>北京赛迪物业智慧营养健康餐厅</td>\n",
       "      <td>实体卡建档</td>\n",
       "      <td>配置/建档</td>\n",
       "      <td>2180</td>\n",
       "      <td>2059</td>\n",
       "      <td>486</td>\n",
       "      <td>283</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>24</th>\n",
       "      <td>北京赛迪物业智慧营养健康餐厅</td>\n",
       "      <td>后台安全审计操作</td>\n",
       "      <td>业务流程记录</td>\n",
       "      <td>1347</td>\n",
       "      <td>15</td>\n",
       "      <td>547</td>\n",
       "      <td>436</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>北京赛迪物业智慧营养健康餐厅</td>\n",
       "      <td>订餐取餐流程</td>\n",
       "      <td>业务流程记录</td>\n",
       "      <td>257</td>\n",
       "      <td>0</td>\n",
       "      <td>98</td>\n",
       "      <td>102</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>北京赛迪物业智慧营养健康餐厅</td>\n",
       "      <td>消费限额拦截</td>\n",
       "      <td>规则触发记录</td>\n",
       "      <td>210</td>\n",
       "      <td>113</td>\n",
       "      <td>95</td>\n",
       "      <td>21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>北京赛迪物业智慧营养健康餐厅</td>\n",
       "      <td>后台报表导出</td>\n",
       "      <td>主动业务动作</td>\n",
       "      <td>129</td>\n",
       "      <td>8</td>\n",
       "      <td>10</td>\n",
       "      <td>18</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>北京赛迪物业智慧营养健康餐厅</td>\n",
       "      <td>退款申请</td>\n",
       "      <td>主动业务动作</td>\n",
       "      <td>114</td>\n",
       "      <td>65</td>\n",
       "      <td>3</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>26</th>\n",
       "      <td>北京赛迪物业智慧营养健康餐厅</td>\n",
       "      <td>人脸建档</td>\n",
       "      <td>配置/建档</td>\n",
       "      <td>7</td>\n",
       "      <td>7</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>北京赛迪物业智慧营养健康餐厅</td>\n",
       "      <td>就餐评价</td>\n",
       "      <td>主动业务动作</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>北京赛迪物业智慧营养健康餐厅</td>\n",
       "      <td>餐单预约</td>\n",
       "      <td>主动业务动作</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>北京赛迪物业智慧营养健康餐厅</td>\n",
       "      <td>就餐考勤</td>\n",
       "      <td>业务流程记录</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>北京赛迪物业智慧营养健康餐厅</td>\n",
       "      <td>线上充值</td>\n",
       "      <td>主动业务动作</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>北京赛迪物业智慧营养健康餐厅</td>\n",
       "      <td>AI 营养对话</td>\n",
       "      <td>主动业务动作</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>北京赛迪物业智慧营养健康餐厅</td>\n",
       "      <td>健康测量会话</td>\n",
       "      <td>主动业务动作</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>北京赛迪物业智慧营养健康餐厅</td>\n",
       "      <td>健康数据记录</td>\n",
       "      <td>业务流程记录</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>北京赛迪物业智慧营养健康餐厅</td>\n",
       "      <td>签到打卡</td>\n",
       "      <td>主动业务动作</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27</th>\n",
       "      <td>北京赛迪物业智慧营养健康餐厅</td>\n",
       "      <td>称重设备事件</td>\n",
       "      <td>业务流程记录</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>28</th>\n",
       "      <td>北京赛迪物业智慧营养健康餐厅</td>\n",
       "      <td>采购单</td>\n",
       "      <td>主动业务动作</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>29</th>\n",
       "      <td>北京赛迪物业智慧营养健康餐厅</td>\n",
       "      <td>账单缴费</td>\n",
       "      <td>主动业务动作</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>30</th>\n",
       "      <td>北京赛迪物业智慧营养健康餐厅</td>\n",
       "      <td>取餐柜接口</td>\n",
       "      <td>业务流程记录</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>31</th>\n",
       "      <td>北京赛迪物业智慧营养健康餐厅</td>\n",
       "      <td>售货机出货</td>\n",
       "      <td>业务流程记录</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      project_name   feature evidence_type  lifetime_records  \\\n",
       "9     首都机场智慧营养健康餐厅     实体卡建档         配置/建档             11016   \n",
       "0     首都机场智慧营养健康餐厅      退款申请        主动业务动作              1473   \n",
       "7     首都机场智慧营养健康餐厅    后台报表导出        主动业务动作              1379   \n",
       "1     首都机场智慧营养健康餐厅      就餐评价        主动业务动作                72   \n",
       "8     首都机场智慧营养健康餐厅    消费限额拦截        规则触发记录                23   \n",
       "2     首都机场智慧营养健康餐厅      餐单预约        主动业务动作                 0   \n",
       "3     首都机场智慧营养健康餐厅      就餐考勤        业务流程记录                 0   \n",
       "4     首都机场智慧营养健康餐厅      线上充值        主动业务动作                 0   \n",
       "5     首都机场智慧营养健康餐厅   AI 营养对话        主动业务动作                 0   \n",
       "6     首都机场智慧营养健康餐厅      签到打卡        主动业务动作                 0   \n",
       "10    首都机场智慧营养健康餐厅      人脸建档         配置/建档                 0   \n",
       "11    首都机场智慧营养健康餐厅       采购单        主动业务动作                 0   \n",
       "25  北京赛迪物业智慧营养健康餐厅     实体卡建档         配置/建档              2180   \n",
       "24  北京赛迪物业智慧营养健康餐厅  后台安全审计操作        业务流程记录              1347   \n",
       "14  北京赛迪物业智慧营养健康餐厅    订餐取餐流程        业务流程记录               257   \n",
       "23  北京赛迪物业智慧营养健康餐厅    消费限额拦截        规则触发记录               210   \n",
       "22  北京赛迪物业智慧营养健康餐厅    后台报表导出        主动业务动作               129   \n",
       "12  北京赛迪物业智慧营养健康餐厅      退款申请        主动业务动作               114   \n",
       "26  北京赛迪物业智慧营养健康餐厅      人脸建档         配置/建档                 7   \n",
       "13  北京赛迪物业智慧营养健康餐厅      就餐评价        主动业务动作                 0   \n",
       "15  北京赛迪物业智慧营养健康餐厅      餐单预约        主动业务动作                 0   \n",
       "16  北京赛迪物业智慧营养健康餐厅      就餐考勤        业务流程记录                 0   \n",
       "17  北京赛迪物业智慧营养健康餐厅      线上充值        主动业务动作                 0   \n",
       "18  北京赛迪物业智慧营养健康餐厅   AI 营养对话        主动业务动作                 0   \n",
       "19  北京赛迪物业智慧营养健康餐厅    健康测量会话        主动业务动作                 0   \n",
       "20  北京赛迪物业智慧营养健康餐厅    健康数据记录        业务流程记录                 0   \n",
       "21  北京赛迪物业智慧营养健康餐厅      签到打卡        主动业务动作                 0   \n",
       "27  北京赛迪物业智慧营养健康餐厅    称重设备事件        业务流程记录                 0   \n",
       "28  北京赛迪物业智慧营养健康餐厅       采购单        主动业务动作                 0   \n",
       "29  北京赛迪物业智慧营养健康餐厅      账单缴费        主动业务动作                 0   \n",
       "30  北京赛迪物业智慧营养健康餐厅     取餐柜接口        业务流程记录                 0   \n",
       "31  北京赛迪物业智慧营养健康餐厅     售货机出货        业务流程记录                 0   \n",
       "\n",
       "    lifetime_distinct_actors  current_30d_records  previous_30d_records  \n",
       "9                       9170                   85                   101  \n",
       "0                        958                  187                   228  \n",
       "7                          1                  192                   132  \n",
       "1                         50                    6                     2  \n",
       "8                          8                    0                     0  \n",
       "2                          0                    0                     0  \n",
       "3                          0                    0                     0  \n",
       "4                          0                    0                     0  \n",
       "5                          0                    0                     0  \n",
       "6                          0                    0                     0  \n",
       "10                         0                    0                     0  \n",
       "11                         0                    0                     0  \n",
       "25                      2059                  486                   283  \n",
       "24                        15                  547                   436  \n",
       "14                         0                   98                   102  \n",
       "23                       113                   95                    21  \n",
       "22                         8                   10                    18  \n",
       "12                        65                    3                     2  \n",
       "26                         7                    0                     0  \n",
       "13                         0                    0                     0  \n",
       "15                         0                    0                     0  \n",
       "16                         0                    0                     0  \n",
       "17                         0                    0                     0  \n",
       "18                         0                    0                     0  \n",
       "19                         0                    0                     0  \n",
       "20                         0                    0                     0  \n",
       "21                         0                    0                     0  \n",
       "27                         0                    0                     0  \n",
       "28                         0                    0                     0  \n",
       "29                         0                    0                     0  \n",
       "30                         0                    0                     0  \n",
       "31                         0                    0                     0  "
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "feature_activity.sort_values(['project_key','lifetime_records'], ascending=[True,False])[\n",
    "    ['project_name','feature','evidence_type','lifetime_records','lifetime_distinct_actors','current_30d_records','previous_30d_records']\n",
    "].head(40)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "1f59ab8f",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-04T11:21:52.449927Z",
     "iopub.status.busy": "2026-08-04T11:21:52.449709Z",
     "iopub.status.idle": "2026-08-04T11:21:52.454800Z",
     "shell.execute_reply": "2026-08-04T11:21:52.454561Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>project_key</th>\n",
       "      <th>project_name</th>\n",
       "      <th>period</th>\n",
       "      <th>category</th>\n",
       "      <th>activity</th>\n",
       "      <th>result</th>\n",
       "      <th>events</th>\n",
       "      <th>distinct_operators</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>airport</td>\n",
       "      <td>首都机场智慧营养健康餐厅</td>\n",
       "      <td>上线以来</td>\n",
       "      <td>报表导出</td>\n",
       "      <td>消费订单导出</td>\n",
       "      <td>成功</td>\n",
       "      <td>1177</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>airport</td>\n",
       "      <td>首都机场智慧营养健康餐厅</td>\n",
       "      <td>上线以来</td>\n",
       "      <td>报表导出</td>\n",
       "      <td>补贴统计</td>\n",
       "      <td>成功</td>\n",
       "      <td>103</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>airport</td>\n",
       "      <td>首都机场智慧营养健康餐厅</td>\n",
       "      <td>上线以来</td>\n",
       "      <td>报表导出</td>\n",
       "      <td>充值统计</td>\n",
       "      <td>成功</td>\n",
       "      <td>61</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>airport</td>\n",
       "      <td>首都机场智慧营养健康餐厅</td>\n",
       "      <td>上线以来</td>\n",
       "      <td>报表导出</td>\n",
       "      <td>人员消费报表</td>\n",
       "      <td>成功</td>\n",
       "      <td>24</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>airport</td>\n",
       "      <td>首都机场智慧营养健康餐厅</td>\n",
       "      <td>上线以来</td>\n",
       "      <td>报表导出</td>\n",
       "      <td>消费订单导出</td>\n",
       "      <td>状态4</td>\n",
       "      <td>10</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>airport</td>\n",
       "      <td>首都机场智慧营养健康餐厅</td>\n",
       "      <td>上线以来</td>\n",
       "      <td>报表导出</td>\n",
       "      <td>设备消费报表</td>\n",
       "      <td>成功</td>\n",
       "      <td>8</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>airport</td>\n",
       "      <td>首都机场智慧营养健康餐厅</td>\n",
       "      <td>上线以来</td>\n",
       "      <td>报表导出</td>\n",
       "      <td>现金退款</td>\n",
       "      <td>成功</td>\n",
       "      <td>5</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>airport</td>\n",
       "      <td>首都机场智慧营养健康餐厅</td>\n",
       "      <td>上线以来</td>\n",
       "      <td>报表导出</td>\n",
       "      <td>部门消费报表</td>\n",
       "      <td>成功</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>saidi</td>\n",
       "      <td>北京赛迪物业智慧营养健康餐厅</td>\n",
       "      <td>上线以来</td>\n",
       "      <td>审计:auth</td>\n",
       "      <td>login</td>\n",
       "      <td>success</td>\n",
       "      <td>970</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>saidi</td>\n",
       "      <td>北京赛迪物业智慧营养健康餐厅</td>\n",
       "      <td>上线以来</td>\n",
       "      <td>审计:auth</td>\n",
       "      <td>logout</td>\n",
       "      <td>success</td>\n",
       "      <td>193</td>\n",
       "      <td>14</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>saidi</td>\n",
       "      <td>北京赛迪物业智慧营养健康餐厅</td>\n",
       "      <td>上线以来</td>\n",
       "      <td>审计:auth</td>\n",
       "      <td>login</td>\n",
       "      <td>fail</td>\n",
       "      <td>168</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>saidi</td>\n",
       "      <td>北京赛迪物业智慧营养健康餐厅</td>\n",
       "      <td>上线以来</td>\n",
       "      <td>报表导出</td>\n",
       "      <td>消费订单导出</td>\n",
       "      <td>成功</td>\n",
       "      <td>115</td>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>saidi</td>\n",
       "      <td>北京赛迪物业智慧营养健康餐厅</td>\n",
       "      <td>上线以来</td>\n",
       "      <td>报表导出</td>\n",
       "      <td>人员消费报表</td>\n",
       "      <td>成功</td>\n",
       "      <td>10</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>24</th>\n",
       "      <td>saidi</td>\n",
       "      <td>北京赛迪物业智慧营养健康餐厅</td>\n",
       "      <td>上线以来</td>\n",
       "      <td>审计:meal_order</td>\n",
       "      <td>refundAgree</td>\n",
       "      <td>success</td>\n",
       "      <td>7</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25</th>\n",
       "      <td>saidi</td>\n",
       "      <td>北京赛迪物业智慧营养健康餐厅</td>\n",
       "      <td>上线以来</td>\n",
       "      <td>审计:meal_order</td>\n",
       "      <td>refund</td>\n",
       "      <td>success</td>\n",
       "      <td>7</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>saidi</td>\n",
       "      <td>北京赛迪物业智慧营养健康餐厅</td>\n",
       "      <td>上线以来</td>\n",
       "      <td>报表导出</td>\n",
       "      <td>消费订单导出</td>\n",
       "      <td>状态4</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>saidi</td>\n",
       "      <td>北京赛迪物业智慧营养健康餐厅</td>\n",
       "      <td>上线以来</td>\n",
       "      <td>报表导出</td>\n",
       "      <td>设备消费报表</td>\n",
       "      <td>成功</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>26</th>\n",
       "      <td>saidi</td>\n",
       "      <td>北京赛迪物业智慧营养健康餐厅</td>\n",
       "      <td>上线以来</td>\n",
       "      <td>审计:auth</td>\n",
       "      <td>change_expired_pwd</td>\n",
       "      <td>success</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>saidi</td>\n",
       "      <td>北京赛迪物业智慧营养健康餐厅</td>\n",
       "      <td>上线以来</td>\n",
       "      <td>报表导出</td>\n",
       "      <td>部门消费报表</td>\n",
       "      <td>成功</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>saidi</td>\n",
       "      <td>北京赛迪物业智慧营养健康餐厅</td>\n",
       "      <td>上线以来</td>\n",
       "      <td>报表导出</td>\n",
       "      <td>菜品销量统计</td>\n",
       "      <td>成功</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   project_key    project_name period       category            activity  \\\n",
       "0      airport    首都机场智慧营养健康餐厅   上线以来           报表导出              消费订单导出   \n",
       "1      airport    首都机场智慧营养健康餐厅   上线以来           报表导出                补贴统计   \n",
       "2      airport    首都机场智慧营养健康餐厅   上线以来           报表导出                充值统计   \n",
       "3      airport    首都机场智慧营养健康餐厅   上线以来           报表导出              人员消费报表   \n",
       "4      airport    首都机场智慧营养健康餐厅   上线以来           报表导出              消费订单导出   \n",
       "5      airport    首都机场智慧营养健康餐厅   上线以来           报表导出              设备消费报表   \n",
       "6      airport    首都机场智慧营养健康餐厅   上线以来           报表导出                现金退款   \n",
       "7      airport    首都机场智慧营养健康餐厅   上线以来           报表导出              部门消费报表   \n",
       "21       saidi  北京赛迪物业智慧营养健康餐厅   上线以来        审计:auth               login   \n",
       "22       saidi  北京赛迪物业智慧营养健康餐厅   上线以来        审计:auth              logout   \n",
       "23       saidi  北京赛迪物业智慧营养健康餐厅   上线以来        审计:auth               login   \n",
       "14       saidi  北京赛迪物业智慧营养健康餐厅   上线以来           报表导出              消费订单导出   \n",
       "15       saidi  北京赛迪物业智慧营养健康餐厅   上线以来           报表导出              人员消费报表   \n",
       "24       saidi  北京赛迪物业智慧营养健康餐厅   上线以来  审计:meal_order         refundAgree   \n",
       "25       saidi  北京赛迪物业智慧营养健康餐厅   上线以来  审计:meal_order              refund   \n",
       "16       saidi  北京赛迪物业智慧营养健康餐厅   上线以来           报表导出              消费订单导出   \n",
       "17       saidi  北京赛迪物业智慧营养健康餐厅   上线以来           报表导出              设备消费报表   \n",
       "26       saidi  北京赛迪物业智慧营养健康餐厅   上线以来        审计:auth  change_expired_pwd   \n",
       "18       saidi  北京赛迪物业智慧营养健康餐厅   上线以来           报表导出              部门消费报表   \n",
       "19       saidi  北京赛迪物业智慧营养健康餐厅   上线以来           报表导出              菜品销量统计   \n",
       "\n",
       "     result  events  distinct_operators  \n",
       "0        成功    1177                   1  \n",
       "1        成功     103                   1  \n",
       "2        成功      61                   1  \n",
       "3        成功      24                   1  \n",
       "4       状态4      10                   1  \n",
       "5        成功       8                   1  \n",
       "6        成功       5                   1  \n",
       "7        成功       1                   1  \n",
       "21  success     970                   1  \n",
       "22  success     193                  14  \n",
       "23     fail     168                   1  \n",
       "14       成功     115                   6  \n",
       "15       成功      10                   4  \n",
       "24  success       7                   1  \n",
       "25  success       7                   1  \n",
       "16      状态4       2                   1  \n",
       "17       成功       2                   1  \n",
       "26  success       2                   1  \n",
       "18       成功       1                   1  \n",
       "19       成功       1                   1  "
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "management_activity[management_activity.period == '上线以来'].sort_values(\n",
    "    ['project_key','events'], ascending=[True,False]\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "be5ea20b",
   "metadata": {},
   "source": [
    "### 6. 数据质量"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "c7061403",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-04T11:21:52.456058Z",
     "iopub.status.busy": "2026-08-04T11:21:52.455989Z",
     "iopub.status.idle": "2026-08-04T11:21:52.462215Z",
     "shell.execute_reply": "2026-08-04T11:21:52.461915Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>project_key</th>\n",
       "      <th>project_name</th>\n",
       "      <th>rows</th>\n",
       "      <th>distinct_ids</th>\n",
       "      <th>distinct_order_numbers</th>\n",
       "      <th>missing_user_orders</th>\n",
       "      <th>future_meal_orders</th>\n",
       "      <th>not_paid</th>\n",
       "      <th>not_completed</th>\n",
       "      <th>deleted</th>\n",
       "      <th>first_meal_date</th>\n",
       "      <th>last_meal_date</th>\n",
       "      <th>period</th>\n",
       "      <th>quality_check</th>\n",
       "      <th>prepare_status</th>\n",
       "      <th>records</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>airport</td>\n",
       "      <td>首都机场智慧营养健康餐厅</td>\n",
       "      <td>901949.0</td>\n",
       "      <td>901949.0</td>\n",
       "      <td>901949.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>6041.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2026-01-20</td>\n",
       "      <td>2026-08-04</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>saidi</td>\n",
       "      <td>北京赛迪物业智慧营养健康餐厅</td>\n",
       "      <td>147141.0</td>\n",
       "      <td>147141.0</td>\n",
       "      <td>147141.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1120.0</td>\n",
       "      <td>66.0</td>\n",
       "      <td>66.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2026-01-18</td>\n",
       "      <td>2026-08-07</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>saidi</td>\n",
       "      <td>北京赛迪物业智慧营养健康餐厅</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>上线以来</td>\n",
       "      <td>取餐流程状态</td>\n",
       "      <td>10.0</td>\n",
       "      <td>257.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>saidi</td>\n",
       "      <td>北京赛迪物业智慧营养健康餐厅</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>近30天</td>\n",
       "      <td>取餐流程状态</td>\n",
       "      <td>10.0</td>\n",
       "      <td>98.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  project_key    project_name      rows  distinct_ids  distinct_order_numbers  \\\n",
       "0     airport    首都机场智慧营养健康餐厅  901949.0      901949.0                901949.0   \n",
       "1       saidi  北京赛迪物业智慧营养健康餐厅  147141.0      147141.0                147141.0   \n",
       "2       saidi  北京赛迪物业智慧营养健康餐厅       NaN           NaN                     NaN   \n",
       "3       saidi  北京赛迪物业智慧营养健康餐厅       NaN           NaN                     NaN   \n",
       "\n",
       "   missing_user_orders  future_meal_orders  not_paid  not_completed  deleted  \\\n",
       "0                  0.0              6041.0       0.0            0.0      0.0   \n",
       "1                  0.0              1120.0      66.0           66.0      0.0   \n",
       "2                  NaN                 NaN       NaN            NaN      NaN   \n",
       "3                  NaN                 NaN       NaN            NaN      NaN   \n",
       "\n",
       "  first_meal_date last_meal_date period quality_check  prepare_status  records  \n",
       "0      2026-01-20     2026-08-04    NaN           NaN             NaN      NaN  \n",
       "1      2026-01-18     2026-08-07    NaN           NaN             NaN      NaN  \n",
       "2             NaN            NaN   上线以来        取餐流程状态            10.0    257.0  \n",
       "3             NaN            NaN   近30天        取餐流程状态            10.0     98.0  "
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_quality"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "863329c7",
   "metadata": {},
   "source": [
    "## Takeaways\n",
    "\n",
    "1. **机场长期优先级：** 消费机稳定性、外部订单一致性、多支付保障、退款和报表自动化。\n",
    "2. **赛迪长期优先级：** 消费机＋闸机双链路、工作日午餐高峰、消费码和核心点位闭环；线上订餐仍是补充能力。\n",
    "3. **累计风险：** 赛迪 257 条取餐记录全部为“备餐中”；累计 210 次限额拦截，且近30天从 21 次升至 95 次。\n",
    "4. **证据边界：** 业务表为 0 不代表页面从未打开。要回答页面访问和转化，仍需补统一事件埋点。\n",
    "5. **报告原则：** 主看上线以来累计使用，近30天只用于趋势、活跃度与异常诊断。"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
