1. 多表连接 (Join)
重点考察 INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL OUTER JOIN 的区别。面试中常问:“如果左表有10条,右表有5条,LEFT JOIN后最多多少条?”
面试官常问:Python中列表和元组的区别?字典的底层实现原理? 这些是数据分析岗位的基石。
[] 定义。() 定义。id() 函数可查看对象内存地址。import copy
original_list = [[1, 2], [3, 4]]
shallow_copy = copy.copy(original_list)
deep_copy = copy.deepcopy(original_list)
修改嵌套元素
original_list[0][0] = 99
print(shallow_copy) # [[99, 2], [3, 4]] - 受影响
print(deep_copy) # [[1, 2], [3, 4]] - 不受影响
这是面试的重灾区。请熟练掌握数据清洗、聚合、合并等操作。
答:1. 使用 chunksize 分块读取;2. 指定 dtype 减少内存占用;3. 使用 category 类型存储低基数字符串;4. 避免使用循环,多用向量化操作。
当两个数组形状不同时,NumPy 会自动调整形状以进行元素级运算。规则是:从尾部维度开始比较,维度必须相等或为1。
| 图表类型 | 适用场景 | 代码示例 |
|---|---|---|
| 折线图 | 时间序列趋势 | df.plot.line() |
| 柱状图 | 类别对比 | df.plot.bar() |
| 散点图 | 相关性分析 | df.plot.scatter() |
| 热力图 | 相关系数矩阵 | sns.heatmap() |
数据分析离不开数据提取。面试官通常会结合 SQL 考察数据处理逻辑。
重点考察 INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL OUTER JOIN 的区别。面试中常问:“如果左表有10条,右表有5条,LEFT JOIN后最多多少条?”
掌握 COUNT, SUM, AVG, MAX, MIN。注意 WHERE 和 HAVING 的区别:WHERE 过滤行,HAVING 过滤组。
高阶考点。如 RANK(), DENSE_RANK(), ROW_NUMBER() 的区别。以及 OVER(PARTITION BY ... ORDER BY ...) 的用法。
即使不做算法工程师,也要懂基本的建模流程和评估指标。
面试最后通常会问:“请介绍一个你做过的项目”。建议使用 STAR法则 (Situation, Task, Action, Result) 来组织语言。
| 项目阶段 | 关键动作 | 示例话术 |
|---|---|---|
| Situation (背景) |
描述业务痛点 | “公司电商业务中,用户流失率高达20%,需要找出流失原因并预警。” |
| Task (任务) |
明确目标 | “我的任务是构建一个用户流失预测模型,并输出关键影响因子。” |
| Action (行动) |
技术细节 | “使用Pandas进行数据清洗,特征工程中使用了One-Hot编码,模型选择了XGBoost,并通过GridSearchCV调参。” |
| Result (结果) |
量化成果 | “模型AUC达到0.85,成功识别出高流失风险用户,协助运营部门降低了5%的流失率。” |
以下是搜索量最高的周边问题,我们为您准备了深度解答。
答:除了基础的SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY, JOIN外,必须掌握窗口函数(ROW_NUMBER, RANK, LEAD, LAG)和字符串/日期处理函数(SUBSTRING, CONCAT, DATE_FORMAT)。这些在面试手写SQL环节出现频率极高。
答:map用于Series,通常用于元素级替换或映射;apply用于Series和DataFrame,可以应用更复杂的函数。对于简单的映射,map速度更快;对于复杂的逻辑,apply更灵活,但性能较差,建议尽量向量化操作代替apply。
答:1. 删除:缺失比例过高(如>50%)或缺失对业务无影响时;2. 填充:均值/中位数/众数填充(数值型),众数填充(类别型),前后向填充(时间序列);3. 插值:线性插值、拉格朗日插值;4. 建模:用其他特征预测缺失值(如KNN填充)。
答:Python由于GIL(全局解释器锁)限制,多线程不适合CPU密集型任务,适合IO密集型(如爬虫、文件读写)。多进程适合CPU密集型(如复杂计算、图像处理)。使用 threading 模块实现多线程,multiprocessing 模块实现多进程。
答:特征工程是将原始数据转换为更能代表预测模型潜在问题的特征的过程。包括:特征提取(如从文本中提取关键词)、特征变换(如标准化、归一化、对数变换)、特征选择(如过滤法、包装法、嵌入法)、特征构造(如交叉特征、多项式特征)。
答:1. 使用 vectorization(向量化操作)代替循环;2. 使用 apply 时尽量使用内置函数;3. 使用 query 或 eval 进行条件筛选;4. 使用 category 类型降低内存;5. 使用 chunksize 处理大文件。
考acca (www.kaoacca.cn) 致力于为求职者和数据爱好者提供最专业、最实用的面试题库和学习资源。我们的内容由资深数据科学家和HR团队共同审核,确保题目与行业需求高度契合。