Sfoglia il codice sorgente

fix(品类再分享分析): 去掉再分享品类非空过滤,支持品类空值显示为未知

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
yangxiaohui 2 mesi fa
parent
commit
9c1dd806b7

BIN
tasks/品类再分享分析/.DS_Store


+ 0 - 1
tasks/品类再分享分析/query.sql

@@ -24,7 +24,6 @@ WHERE   dt >= ${start}
 AND     dt <= ${end}
 AND     dt <= ${end}
 AND     usersharedepth = 0
 AND     usersharedepth = 0
 AND     videoid IS NOT NULL
 AND     videoid IS NOT NULL
-AND     再分享merge一级品类 IS NOT NULL
 GROUP BY dt, channel, merge一级品类, merge二级品类, 再分享merge一级品类, 再分享merge二级品类
 GROUP BY dt, channel, merge一级品类, merge二级品类, 再分享merge一级品类, 再分享merge二级品类
 ORDER BY dt, channel, 点击uv DESC
 ORDER BY dt, channel, 点击uv DESC
 ;
 ;

+ 8 - 2
tasks/品类再分享分析/visualize.py

@@ -42,6 +42,12 @@ def get_cat2_label(cat1, cat2):
         return f"{cat1_str}/{cat2}"
         return f"{cat1_str}/{cat2}"
     return cat1_str
     return cat1_str
 
 
+# 获取品类标签(处理空值)
+def get_cat_label(val):
+    if pd.notna(val) and str(val).strip():
+        return str(val)
+    return '未知'
+
 # 计算渠道×日期×品类级别的矩阵数据
 # 计算渠道×日期×品类级别的矩阵数据
 def calc_matrix_data(channel, date=None, level='cat1'):
 def calc_matrix_data(channel, date=None, level='cat1'):
     """计算指定渠道和日期的品类矩阵"""
     """计算指定渠道和日期的品类矩阵"""
@@ -55,8 +61,8 @@ def calc_matrix_data(channel, date=None, level='cat1'):
     # 根据级别选择品类列
     # 根据级别选择品类列
     if level == 'cat1':
     if level == 'cat1':
         # 填充空值
         # 填充空值
-        ch_df['头部一级品类'] = ch_df['头部一级品类'].fillna('未知')
-        ch_df['再分享一级品类'] = ch_df['再分享一级品类'].fillna('未知')
+        ch_df['头部一级品类'] = ch_df['头部一级品类'].apply(get_cat_label)
+        ch_df['再分享一级品类'] = ch_df['再分享一级品类'].apply(get_cat_label)
         row_col = '头部一级品类'
         row_col = '头部一级品类'
         col_col = '再分享一级品类'
         col_col = '再分享一级品类'
     else:
     else: