BCG X 又放 OA 了。这家的 OA 题库不大,去年做过不少,但难度是实打实有的——CodeSignal 平台、四道数据分析题、Jupyter 环境,四题连起来是一条完整的 DS 流水线:统计聚合 → 特征工程 → 预处理 → 建模。这次抽到的是司机数据集版,把四道题的题面和思路完整拆出来,字段都按真实题面对齐了。

BCG X DS OA 题目描述
先把数据摸清楚,四道题都围着这套表转(不同题给的字段略有增减):
drivers.csv:司机表,含 driver_id、car_id、age、started_driving_year、second_language(无第二语言时值为 “no”)、rating、net_worth_of_tips、driver_class(”A class” / “B class”)等。
rides_{i}.csv:行程表,拆成 rides_1 到 rides_4 四个文件,含 ride_id、driver_id、passenger_id、date、status(”Rejected by the driver” / “Cancelled by the passenger” / “Success”),以及 car_clearness_upvote_given、politeness_upvote_given、communication_upvote_given、punctuality_upvote_given、complaint_given 这几个 bool 点赞/投诉字段。
有个全局设定要记牢:数据截至 2023-04-15,所有时间类特征都以这天为”today”。
T1:基础统计聚合
题意:合并四个行程 CSV,计算并输出三个指标——司机平均评分、懂第二语言的司机比例、行程成功率。

思路:drivers 表的 rating 直接 mean();第二语言比例是 second_language != “no” 的司机数除以总数;行程成功率把四个 rides 文件 concat 起来后,status == “Success” 的占比。三个结果组装成 DataFrame 存 CSV。纯热身,唯一要盯的是输出格式和 expected.csv 逐字对齐。
T2:多表整合与特征工程
题意:整合司机、车辆、行程数据,算三个衍生特征——司机经验年限、距 2023-04-15 的年检天数、总点赞数。合并三表、填充缺失值、筛选指定列后输出 CSV。

思路:经验年限用 2023 减 started_driving_year(或按 2023-04-15 精确算);年检天数用 2023-04-15 减去车检日期取 days,记得先 to_datetime;总点赞数把四个 bool 点赞字段相加,按 driver_id groupby 求和后 left join 回司机表——没接过单的司机点赞补 0,这个 fillna(0) 是 T2 最容易漏的坑。列名和筛选严格照题面来。
T3:预处理与防泄漏
题意:预处理训练集和测试集——用训练集的 age 均值填充年龄缺失;合并两集后对分类变量统一做 0 起始编码;用训练集拟合标准化器再分别标准化训练/测试集;driver_class 映射成 0/1。

思路:这题的核心考点是防数据泄漏。填充用的均值、标准化器的 fit,全部只能在训练集上做,测试集只 transform。分类变量的 0 起始编码建议自己 sorted(unique()) 建字典再 map,别依赖 LabelEncoder 的默认行为。driver_class 是二分类标签,A/B 直接映射 0/1。
T4:建模与输出
题意:合并训练集和验证集,提取特征和目标列,用带类别平衡的随机森林训练,预测测试集司机等级并输出 predictions.csv。B 类是正类,目标是最大化 recall 同时保持 precision 在较高水平。

思路:free-form 题但套路固定。把 train 和 val concat 起来当训练集(验证集标签白给的,合进去多一份数据);随机森林开 class_weight=’balanced’ 或手动给 B 类加权;如果要卡 precision 阈值,用 predict_proba 在验证集上扫阈值挑达标点。用选定模型预测测试集,按格式存 predictions.csv。一句话:让模型偏向 B 类,再用阈值把 precision 拉回及格线。
写在最后
这次 BCGX OA 又遇到了原题,整体做下来感觉还是数据工作流的常规考察。只要提前熟悉 Pandas 操作、防泄漏预处理和完整建模流程,拿高分并不难。
如果你也在准备 BCGX、其他咨询公司或数据分析相关的 OA,欢迎了解 InterviewShow。他们专注提供 OA 辅助 和面试指导,导师有丰富一线经验,能帮你快速掌握高频题型。有需要的同学可以直接联系详聊。祝大家早日通过 OA,拿到好 Offer!