数据分析面试八股文--技能软件类

Excel

数据透视表

数据透视表(Pivot Table)是 Excel 中一个强大的功能,用于快速汇总、排序、重新组织和分析数据集,可以在面试中被要求展示如何创建和使用数据透视表来进行数据分析。

考察点可能包括:

  • 创建数据透视表
  • 分类、汇总数据
  • 使用数据透视表进行数据分析和解释结果

表的关联(VLOOKUP)

VLOOKUP函数在 Excel 中用于查找和检索表格中的数据。面试可能会包含如何使用 VLOOKUP或 INDEX 和MATCH 函数来关联不同的数据表。

考察点可能包括:

  • 理解 VLOOKUP 的基本用法
  • 处理 VLOOKUP 返回的错误
  • 使用 INDEX和MATCH作为VLOOKUP的替代方案

常用函数

Excel 中的函数是日常工作的基础,如 IF,SUMIF,SUMIFS,COUNTIF,COUNTIFS 等,用于处理条件运算和汇总数据。

考察点可能包括:

  • 使用条件函数进行数据分析
  • 对数据集进行求和、计数等操作
  • 复杂公式的构建能力

SQL

基础查询

我比较喜欢在 group by 和 having 这两个函数给实习生埋坑,所以大家在做聚合的时候注意分辨

排序(ORDER BY)

在 SQL中,ORDER BY 子句用于根据指定的列排序查询结果。
考察点可能包括:

  • 使用 ORDER BY对结果集按一个或多个列升序或降序排序
  • 理解如何结合 ASC(升序)和DESC(降序)关键词使用

聚合函数

聚合函数用于在 SQL 查询中执行计算,如COUNT(),SUM(),AVG(),MIN(),MAX()等
考察点可能包括:

  • 使用聚合函数对数据进行汇总
  • 理解聚合函数与 NULL 值的关系
  • 使用 DISTINCT关键词进行去重计算

分组(GROUP BY)

GROUP BY 子句用于根据一个或多个列对结果集进行分组。
考察点可能包括

  • 结合聚合函数使用 GROUPBY 进行数据分组统计
  • 理解分组后如何筛选数据(使用HAVING子句)

过滤(WHERE)

WHERE 子句用于过滤查询结果,根据指定的条件返回满足条件的记录。
考察点可能包括:

  • 使用比较运算符(如=,><,<,=,<=)进行数据过滤
  • 使用逻辑运算符(如AND,OR,NOT)组合多个条件
  • 理解 WHERE和 HAVING 的区别和适用场景

表连接(JOIN)

SQL的 JOIN 子句用于结合两个或多个表中的行。
考察点可能包括:

  • 理解并使用不同类型的 J0IN(如INNERJOIN,LEFT JOIN,RIGHT JOIN,FULL OUTER JOIN)
  • 使用ON 子句指定连接条件
  • 处理多表连接时的名称冲突问题

表合并(UNION)

UNION 操作符用于合并两个或多个SELECT 语句的结果集。
考察点可能包括:

  • 使用 UNION和UNION ALL的区别
  • 确保参与合并的各个查询结果具有相同数量的列和相似的数据类型

子查询

子查询(Subquery)指嵌套在另一个查询中的 SELECT 语句。
考察点可能包括:

  • 编写在 WHERE 子句中使用的子查询
  • 理解相关子查询(Correlated Subquery)和独立子查询的区别及用法
  • 在SELECT列表、FROM 子句和 HAVING 子句中使用子查询

高级查询

SQL 一般面试中出现的高级查询主要是指窗口函数。

SQL 窗口函数概要

SOL窗口函数(Window Functions)允许对一组行(称为窗口)进行计算,这些行与查询结果中的当前行有某种关系。与聚合函数不同,窗口函数不会将行组合成单个输出行——它们只计算每个行对应的值。窗口函数在执行数据分析、生成报告、计算运行总计和平均值等操作时非常有用。

窗口函数的一般格式

<窗口函数>OVER(
[PARTITION BY<co1>,<co12>,...
[ORDER BY<co13>,<co14>,...]
[frame clause]
)
  • PARTITION BY 子句将结果集分成多个分区,并且窗口函数在每个分区内独立计算。
  • ORDER BY 子句定义了在每个分区内数据的排序方式。
  • frame clause 定义了窗口的具体范围,例如 ROWS BETWEEN...PRECEDING AND ...FOLLOWING

窗口函数的分类

专有窗口函数(或排名窗口函数)

这些函数通常用来分配一个序号给结果集中的每一行。

包括的函数有:

  • ROW NUMBER():为每个窗口内的行提供一个唯一的序号。
  • RANK():为窗口内的行提供一个排名,相同值的行会得到相同的排名,排名之间会留有“间隔”。
  • DENSE RANK():类似于 RANK(),但排名之间不会留有“间隔”。
  • NTILE(n):将窗口内的行分配到指定数量的相等分组中。

聚合类窗口函数

这些函数在窗口的每一行上应用聚合,但不将结果合并为单个值。
包括的函数有:

  • SUM():计算窗口内所有行的总和。
  • AVG():计算窗口内所有行的平均值。
  • MIN()/MAX():找出窗口内所有行的最小值/最大值,
  • COUNT():计算窗口内的行数。

这些聚合窗口函数与它们在标准聚合中的用法类似,但是加上了 OVER 子句,它们就可以在每一行上返回一个值,而不是对整个查询结果或分组进行聚合。

聚合类窗口函数示例

SELECT
    employee id,
    department,
    salary,
    AVG(salary) OVER (PARTITION BY department) as avg_department_salary
FROM
employees;

在这个例子中, AVG(salary) OVER (PARTITION BY department)是一个聚合类窗口函数。它会计算每个部门内部的平均薪水,但是不会合并为单个值,而是会为每一行返回平均薪水,从而允许我们看到每个员工的薪水与其所在部门平均薪水的对比。

Python

python 以下只是简单的概述。

数据分析三板斧概述

数据分析的“三板斧"指的是三个在 Python 数据分析领域广泛使用的库:NumPy,Pandas,和 Matplotlib。这三个库提供了处理和分析数据的强大工具。

NumPy

NumPy(Numerical Python)是一个开源 Python 库,用于支持大型多维数组和矩阵运算。此外,NumPy 还提供了大量的数学函数来操作这些数组。
常用方法:

  • np.array():创建数组
  • np.arange():返回一个有终点和起点的固定步长的排列
  • np.ones()、np.zeros():创建指定长度或形状的全0或全1数组
  • np.linspace():返回在指定的时间间隔内计算的均匀间隔的数字。np.reshape():给予数组一个新的形状而不改变其数据
  • np.reshape():给予数组一个新的形状而不改变其数据
  • np.matmul() 或 @ 操作符:矩阵乘法
  • np.mean()、np.median()、np.std():计算数组的平均值、中位数和标准差

Pandas

Pandas 是一个强大的 Pthon 数据分析工具库,提供了快速、灵活和富有表现力的数据结构,旨在使“关系”或"标签”数据的操作既简单又直观。
常用方法:

  • pd.series()、pd.DataFrame():创建序列或数据帧
  • df.head()、df.tail():查看数据帧的前几行或后几行
  • df.loc[]、df.iloc[]:基于标签或位置的索引
  • df.groupby():对数据进行分组
  • df.merge()、df.join():合并或连接不同的数据帧
  • df.pivot table():创建透视表
  • df.plot():基础绘图

Matplotlib

Matplotlib 是 Python 的一个绘图库,提供了一个类似于 MATLAB 的绘图系统,
常用方法:

  • plt.plot():绘制线性图表
  • plt.scatter():绘制散点图
  • plt.bar():绘制条形图
  • plt.hist():绘制直方图
  • plt.xlabel()、plt.ylabel():设置 x轴和 y轴标签
  • plt.title():设置图表标题
  • plt.legend():添加图例
  • plt.show():显示图表

机器学习知识点

分类

分类是监督学习的一个核心任务,旨在预测目标变量的类别标签。常用的分类算法包括逻辑回归、决策树、随机森林、支持向量机,(SVM)神经网络等。

回归

回归也是监督学习的一个任务,但它预测的是连续的数值,而不是类别标签。常见的回归算法有线性回归、岭回归、套索回归、弹性网络、决策树回归等。

聚类

聚类是一种无监督学习技术,用于将数据集中的样本分组,使得同一组内的样本彼此相似,而不同组的样本不相似。常用的聚类算法包括 K-Means、层次聚类、DBSCAN、高斯混合模型等。

数理统计

概率

概率是衡量某个事件发生的可能性的数学分支。它为随机变量的行为建模和推理提供了基础。

  • 随机变量:描述随机现象数值结果的变量。
  • 概率分布:随机变量可能取得的每个结果及其概率
  • 条件概率:一个事件在另一个事件已经发生条件下的概率。
  • 贝叶斯定理:描述两个事件概率之间关系的定理,用于概率的更新和预测。

参数估计

参数估计是统计学中估计总体参数(如均值、方差)的过程。它包括点估计和区间估计

  • 点估计:使用样本数据估计一个未知参数的单一值。
  • 区间估计:使用样本数据估计未知参数的一个区间,以及这个区间覆盖未知参数的概率(置信水平)

假设检验

假设检验是用来决定样本数据是否支持某个关于总体参数的假设

  • 零假设:假设检验中的默认假设,通常表示为没有效应或没有差异。
  • 备择假设:与零假设相对立的假设,通常表示为研究者想证明的效应或差异。
  • P 值:在零假设为真的条件下,获得当前结果及更极端结果的概率。一个小的 P值(通常小于 0.05)被认为是反对零假设的证据。
  • 显著性水平:一个统计结果达到预设的显著性水平,提示数据提供了足够的证据反对零假设。

A/B 测试

A/B 测试是一种统计方法,用于比较两个或多个技术或方法(例如,网页设计、产品功能等)的效果,通常用于在线产品优化。

  • 控制组:在 A/B 测试中不会接受变更的组别,用于作为基准进行比较。
  • 实验组:在 A/B 测试中会接受变更的组别,用于测试新的技术或方法
  • 结果测量:在 A/B 测试中,你需要定义成功的指标,比如点击率、转化率或用户留存率。

 

  • 11
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
面试官要求你回答一个关于 Python 的典型问题时,下面是一个可能的八股文回答模板: 首先,我会对问题进行理解和分析,确保我准确地理解了问题的要求和背景。 然后,我会按照以下结构来回答问题: 1. **问题背景和解决思路**:我会简要介绍问题的背景和解决思路。例如,如果问题是关于列表的操作,我可能会解释什么是列表以及如何使用它们来存储和操作数据。 2. **核心代码实现**:接下来,我会给出一个基本的代码实现,以展示我对问题的理解和能力。我会尽量保持代码简洁而清晰,并结合注释来解释代码的每一步。 3. **优化和扩展**:在展示基本实现之后,我还可以讨论如何优化代码以提高性能或满足更复杂的需求。我可以提出一些常见的优化策略,例如使用生成器、使用递归等。 4. **错误处理和异常处理**:此外,我还可以谈谈在代码中处理错误和异常的重要性。我会提到一些常见的错误和异常型,并解释如何使用 try-except 语句来捕获和处理它们。 5. **应用场景和实际例子**:最后,我会给出一些实际的应用场景和示例,以展示我对 Python 的灵活运用能力。我可以谈论一些常见的 Python 库和框架,以及它们在实际项目中的使用案例。 通过以上结构,我可以清晰地展示我对 Python 的理解、能力和经验,并给面试官留下一个积极的印象。当然,在回答问题时,我也会根据具体问题的要求进行适当调整和补充。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值