Selaa lähdekoodia

refactor(渠道效果分析): 统一Top列表格式

- 各品类Top改为Top 5,与各渠道Top 5品类格式一致
- 每行展示UV和回流率两个指标
- 修复CSV文件选择逻辑,仅选取原始数据文件

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
yangxiaohui 2 kuukautta sitten
vanhempi
commit
91c78bd588
1 muutettua tiedostoa jossa 9 lisäystä ja 5 poistoa
  1. 9 5
      tasks/渠道效果分析/analyze.py

+ 9 - 5
tasks/渠道效果分析/analyze.py

@@ -11,7 +11,7 @@ from pathlib import Path
 task_dir = Path(__file__).parent
 output_dir = task_dir / "output"
 
-csv_files = [f for f in output_dir.glob("*.csv") if '_分析' not in f.name]
+csv_files = [f for f in output_dir.glob("*.csv") if f.stem.count('_') == 1]
 if not csv_files:
     print("没有找到数据文件,请先运行 query.sql")
     exit(1)
@@ -152,7 +152,7 @@ for category in valid_categories:
 
 log()
 
-log("【各品类 Top 3 渠道】")
+log("【各品类 Top 5 渠道】")
 log("-" * 80)
 
 for category in valid_categories:
@@ -162,9 +162,13 @@ for category in valid_categories:
     if len(row) == 0:
         continue
     cat_name = str(category)[:15] if pd.notna(category) else '(空)'
-    cat_uv = int(pivot_uv.loc[category].sum())
-    top3 = ", ".join([f"{ch[:10]}({row[ch]:.0%})" for ch in row.head(3).index])
-    log(f"  {cat_name:<17} UV={cat_uv:>8,} → {top3}")
+    cat_total_uv = int(pivot_uv.loc[category].sum())
+    log(f"  {cat_name:<17} 总UV={cat_total_uv:>10,}")
+    for ch in row.head(5).index:
+        ch_name = ch[:20] if pd.notna(ch) else ''
+        ch_uv = int(pivot_uv.loc[category, ch]) if ch in pivot_uv.columns else 0
+        log(f"      {ch_name:<20} UV={ch_uv:>8,} 回流率={row[ch]:.1%}")
+    log()
 
 log()