模式1连接筛选 精准找人找事业务场景春运期间12306联合抖音推旅途内容包想给用户推荐时长≤当前车次剩余时间的短视频提升乘车体验。核心逻辑先连表车次信息视频库再筛选时长匹配车次ID最后排序优先推荐完播率高的。Python代码示例import pandas as pd # 车次表 视频库模拟数据 train_df pd.DataFrame({ train_id: [101, 102], remaining_minutes: [45, 90] # 剩余分钟数 }) video_df pd.DataFrame({ video_id: [v1, v2, v3], duration_min: [30, 60, 120], completion_rate: [0.85, 0.72, 0.91] # 完播率 }) # 连接筛选排序核心三步 result ( train_df[train_df[train_id] 101] # 筛选目标车次 .merge(video_df[video_df[duration_min] 45], howcross) # 连接时长过滤 .sort_values(completion_rate, ascendingFalse) # 优先推荐高完播 [[train_id, video_id, duration_min]] ) print(result)业务复用场景美团骑手订单匹配筛选3公里内可接单骑手小红书笔记用户标签匹配精准推送美妆内容滴滴车型用户需求匹配筛选符合宠物友好的车辆 模式2窗口函数 排名排序神器业务场景美妆品牌想监控各KOL账号下点赞最高的3篇笔记用于复盘内容策略。核心逻辑按账号分组PARTITION BY按点赞降序排ORDER BY用RANK()打标再筛前3。Python代码示例# 模拟笔记数据 notes_df pd.DataFrame({ account: [A, A, A, B, B, B], note_id: [1,2,3,4,5,6], likes: [1200, 3500, 2800, 900, 4100, 3900] }) # 窗口函数排名pandas 2.1 支持 rank notes_df[rank] notes_df.groupby(account)[likes]\ .rank(methodmin, ascendingFalse) # methodmin 等价 SQL RANK() # 筛选各账号前3 top3 notes_df[notes_df[rank] 3][[account, note_id, likes, rank]] print(top3) ## 运行结果 account note_id likes rank 0 A 1 1200 3.0 1 A 2 3500 1.0 2 A 3 2800 2.0 3 B 4 900 3.0 4 B 5 4100 1.0 5 B 6 3900 2.0 业务复用场景淘宝直播各主播场均GMV排名找头部潜力股学而思各班级学员进步榜激励复盘双用顺丰各片区骑手准时率排名优化运力调度 模式3聚合分组 数据卷王必备业务场景分析用户当天打开APP当天完成下单的行为计算人均订单数客单价评估即时需求转化效率。核心逻辑先按用户日期去重确保一人一天只算一次会话再连订单表最后GROUP BY聚合求和/计数。Python代码示例# 会话表 订单表 session_df pd.DataFrame({ user_id: [101,101,102], session_date: [2024-06-01,2024-06-02,2024-06-01] }).drop_duplicates() # 去重一人一天只算一次 order_df pd.DataFrame({ user_id: [101,101,102], order_date: [2024-06-01,2024-06-01,2024-06-01], order_value: [35.5, 28.0, 52.0] }) # 连接聚合 result ( session_df.merge(order_df, left_on[user_id,session_date], right_on[user_id,order_date]) .groupby([user_id,session_date]) .agg(total_orders(order_value,count), total_value(order_value,sum)) .reset_index() ) print(result) ## 运行结果 user_id session_date total_orders total_value 0 101 2024-06-01 2 63.5 1 102 2024-06-01 1 52.0 业务复用场景京东到家用户日活下单转化评估小时达粘性得到APP用户日登录课程购买分析知识付费路径银行APP用户日打开理财申购追踪金融转化漏斗 模式4透视表 把行变列一眼看懂趋势业务场景HR想横向对比各职级员工在2021-2024年的调薪幅度快速识别涨薪黑马和滞涨群体。核心逻辑用CASE WHEN或pandas pivot把年份从行变列再用MAX/SUM聚合最后按员工分组输出。Python代码示例# 模拟调薪数据 salary_df pd.DataFrame({ employee: [张三,张三,张三, 李四,李四], year: [2021,2022,2023, 2021,2022], salary: [15, 18, 22, 20, 21] # 单位万 }) # 透视年份变列方法1pivot_table pivot salary_df.pivot_table( indexemployee, columnsyear, valuessalary, aggfuncmax # 同年份多条取最高 ).fillna(0) # 缺失年份补0 print(pivot) # 输出 # year 2021 2022 2023 # employee # 张三 15.0 18.0 22.0 # 李四 20.0 21.0 0.0业务复用场景财务各事业部季度营收对比一眼看出谁在拖后腿运营各渠道月度ROI透视快速分配下月预算产品各功能模块周活对比决定迭代优先级 模式5累计指标 看趋势别只看单点业务场景投资人想看剔除退款后的真实增长计算3个月滚动平均GMV平滑大促波动看清长期趋势。核心逻辑先按月聚合剔除负值退款再用rolling().mean()算滑动平均最后按时间排序输出。Python代码示例# 模拟采购数据含退款负值 purchase_df pd.DataFrame( { date: pd.date_range(2023-01, periods13, freqME), # 生成13期 amount: [120, -15, 135, 142, -8, 158, 165, 170, -20, 185, 192, 200, 210], } ) # 1. 按月聚合 剔除退款 monthly ( purchase_df[purchase_df[amount] 0] .groupby(pd.Grouper(keydate, freqME)) .agg(monthly_gmv(amount, sum)) .reset_index() ) # 2. 计算3期滚动平均 monthly[rolling_3m] monthly[monthly_gmv].rolling(window3).mean() print(monthly[[date, monthly_gmv, rolling_3m]]) ## 运行结果 date monthly_gmv rolling_3m 0 2023-01-31 120 NaN 1 2023-02-28 0 NaN 2 2023-03-31 135 85.000000 3 2023-04-30 142 92.333333 4 2023-05-31 0 92.333333 5 2023-06-30 158 100.000000 6 2023-07-31 165 107.666667 7 2023-08-31 170 164.333333 8 2023-09-30 0 111.666667 9 2023-10-31 185 118.333333 10 2023-11-30 192 125.666667 11 2023-12-31 200 192.333333 12 2024-01-31 210 200.666667 业务复用场景B站UP主粉丝7日滚动增长识别内容爆发点蔚来门店周订单滚动均值评估新车型热度阿里云客户月消耗滚动趋势预判续费风险 模式6漏斗分析 用户去哪了业务场景分析用户从首次登录→周活5次→月观看10h的转化路径计算各阶段流失率优化新手引导。核心逻辑用CTE或pandas多步筛选定义每阶段用户再用LEFT JOIN串联最后算转化率末阶段/首阶段。Python代码示例# 模拟用户行为数据 user_df pd.DataFrame({ user_id: range(1,101), country: [CN]*100, sessions_30d: np.random.poisson(8, 100), # 30天会话数 watch_hours: np.random.exponential(5, 100) # 观看小时数 }) # 定义三阶段向量化筛选高效 stage1 user_df[user_df[sessions_30d] 0] # 活跃用户 stage2 user_df[user_df[sessions_30d] 5] # 深度活跃 stage3 user_df[(user_df[sessions_30d] 5) (user_df[watch_hours]10)] # 核心用户 # 计算转化按国家分组 funnel pd.DataFrame({ country: [CN], active_users: len(stage1), engaged_users: len(stage2), power_users: len(stage3), conversion_rate: round(len(stage3)/len(stage1)*100, 2) }) print(funnel) ## 运行结果 country active_users engaged_users power_users conversion_rate 0 CN 100 93 14 14.0 业务复用场景淘宝浏览→加购→支付优化购物车流失得到试听→购课→完课提升知识付费转化微信支付绑卡→首刷→复刷加速支付习惯养成 模式7时间对比 今天比昨天好在哪业务场景城管局想监控每日违规开单量的日环比变化快速发现执法强度波动或居民配合度变化。核心逻辑先按日聚合违规数再用shift()取前一天值最后相减得差值正数变严负数变松。Python代码示例# 模拟违规数据 violation_df pd.DataFrame( { date: np.random.choice( pd.date_range(2024-01-01, periods10, freqD), # 10个候选日期 size100, # 生成100条记录 replaceTrue, # 允许同一天多条 ), violation_id: range(1, 101), } ) # 1. 按日聚合 daily violation_df.groupby(date).size().reset_index(namedaily_count) # 2. 计算日环比变化shift取前一天 daily[diff] daily[daily_count] - daily[daily_count].shift(1) print(daily[[date, daily_count, diff]]) ## 运行结果 date daily_count diff 0 2024-01-01 3 NaN 1 2024-01-02 5 2.0 2 2024-01-03 14 9.0 3 2024-01-04 10 -4.0 4 2024-01-05 9 -1.0 5 2024-01-06 7 -2.0 6 2024-01-07 12 5.0 7 2024-01-08 8 -4.0 8 2024-01-09 15 7.0 9 2024-01-10 17 2.0 业务复用场景抖音日活用户日环比监控内容热点效应美团日订单量波动快速响应天气/节日影响
网站建设
高端定制
企业官网