AI-Agent 面试题汇总 - Python数据分析篇
1. Python 数据分析常用库有哪些?各自作用是什么?
NumPy:高性能数值计算、矩阵运算pandas:表格数据处理(DataFrame)matplotlib / seaborn:可视化scikit-learn:特征工程与机器学习工具scipy:科学计算与统计函数
2. 什么是 Series 和 DataFrame?
Series:一维带索引数组DataFrame:二维表格结构(行列索引),是分析工作主力数据结构。
3. 如何将字典创建为 DataFrame?(宝典同类高频)
import pandas as pd
data = {"name": ["Tom", "Bob"], "score": [88, 92]}
df = pd.DataFrame(data)
print(df)
4. 如何查看 DataFrame 的基本信息?
df.head() df.tail() df.shape df.info() df.describe()
5. 如何输出 df 的所有列名?
print(df.columns) # 或 print(df.columns.tolist())
6. 如何修改第二列列名为 popularity?
cols = df.columns.tolist() cols[1] = "popularity" df.columns = cols
7. 如何筛选包含 "Python" 的行?
result = df[df["content"].str.contains("Python", na=False)]
8. 如何统计 grammar 列每种语言出现次数?
df["grammar"].value_counts()
9. loc 和 iloc 的区别是什么?
loc:按标签取值iloc:按位置下标取值
10. 如何新增一列并按条件赋值?
df["level"] = "low" df.loc[df["score"] >= 90, "level"] = "high"
11. apply、map、applymap 区别?
map:Series 元素级映射apply:按行/列应用函数applymap:DataFrame 每个元素应用函数(新版常建议用map/向量化替代)
12. 什么是向量化操作?为什么重要?
向量化是直接对整列/数组运算,避免 Python for 循环,速度更快、代码更简洁。
13. 如何处理缺失值(NaN)?
df.isna().sum() df.dropna() df.fillna(0) df["age"] = df["age"].fillna(df["age"].median())
14. 缺失值填充常见策略有哪些?
- 数值:均值/中位数/分组统计填充
- 类别:众数/“unknown”
- 时间序列:前向填充、后向填充
15. 如何删除重复值?
df.drop_duplicates() df.drop_duplicates(subset=["user_id"], keep="last")
16. groupby 的核心作用是什么?
按某些维度分组后做聚合(sum/mean/count 等),是业务报表与指标分析核心能力。
17. groupby 常见聚合怎么写?
df.groupby("channel")["amount"].sum()
df.groupby("channel").agg({"amount": ["sum", "mean"], "user_id": "nunique"})
18. pivot_table 和 groupby 的区别?
pivot_table 更适合做透视分析(行列交叉汇总),groupby 更通用灵活。
19. merge / join / concat 的区别?
merge:按键值做数据库式关联join:基于索引关联(DataFrame 方法)concat:按行或列拼接
20. 常见 join 类型有哪些?
inner / left / right / outer,和 SQL 语义一致。
21. 如何把字符串日期转 datetime?
df["dt"] = pd.to_datetime(df["dt"], errors="coerce")
22. 时间序列分析常用操作有哪些?
- 按天/周/月聚合
- 滚动窗口(rolling)
- 重采样(resample)
- 同比/环比计算
23. 如何按月统计销售额?
df["dt"] = pd.to_datetime(df["dt"])
monthly = df.resample("M", on="dt")["amount"].sum()
24. 什么是异常值?常见检测方法?
异常值是明显偏离分布的数据点。常见方法:IQR(箱线图法)、Z-Score、业务阈值法。
25. 如何用 IQR 去除异常值?
q1 = df["x"].quantile(0.25) q3 = df["x"].quantile(0.75) iqr = q3 - q1 df2 = df[(df["x"] >= q1 - 1.5*iqr) & (df["x"] <= q3 + 1.5*iqr)]
26. 标准化和归一化有什么区别?
- 标准化:变成均值0方差1
- 归一化:缩放到固定区间(如 0~1)
27. fit、transform、fit_transform 区别是什么?
fit:在训练集上学习参数(如均值、方差)transform:用已学参数转换数据fit_transform:两者合并(通常用于训练集)
28. 为什么必须先划分训练集再做标准化?
避免数据泄漏。应在训练集 fit,对训练/验证/测试集分别 transform。
29. 如何做 one-hot 编码?
pd.get_dummies(df, columns=["city"], drop_first=True)
30. LabelEncoder 和 One-Hot 的适用场景?
LabelEncoder:通常用于标签 y(分类目标)One-Hot:用于无序类别特征 X
31. 如何处理类别不平衡?
常见:下采样、上采样、SMOTE、调类权重、改评估指标(AUC/F1/PR)。
32. 训练/验证/测试集如何划分?
常见 7:2:1 或 8:1:1;小样本常用交叉验证增强稳定性。
33. K 折交叉验证的作用是什么?
降低单次划分偶然性,让模型评估更稳健。
34. 分类任务常用评估指标有哪些?
Accuracy、Precision、Recall、F1、ROC-AUC、PR-AUC。样本不平衡时更关注 Recall/F1/PR-AUC。
35. 回归任务常用评估指标有哪些?
MAE、MSE、RMSE、R²。对异常值敏感性:MSE/RMSE 通常更敏感。
36. 什么是数据泄漏?举例说明
训练时使用了线上不可得信息或未来信息。例如用“是否退款结果”预测“是否会退款”,就属于标签泄漏。
37. EDA(探索性数据分析)一般做什么?
看分布、缺失、异常、相关性、分组表现、时间趋势,提出可验证假设。
38. AI-Agent 场景下常见分析任务有哪些?
- 会话日志分析(转化、留存、失败原因)
- Prompt 版本效果对比(A/B)
- 工具调用成功率与延迟分析
- 用户反馈与满意度分层分析
39. 如何分析“Agent 回复质量下降”?
常见思路:先按时间/版本切片 → 看输入分布变化 → 看工具调用链路(超时/失败)→ 看模型参数与提示词改动 → 回归实验确认根因。
本专栏聚焦 AI-Agent 面试高频考点,内容来自真实面试与项目实践。系统覆盖大模型基础、Prompt工程、RAG、Agent架构、工具调用、多Agent协作、记忆机制、评测、安全与部署优化等核心模块。以“原理+场景+实战”为主线,提供高频题解析、标准答题思路与工程落地方法,帮助你高效查漏补缺.