大家好,今天整理数据分析面试题集锦,经常会被问到,“数据分析需要学习什么技能?”,“针对实际的业务场景,如何使用数据分析工具去分析?”基于此作者总结数据分析面试常用的问题,面试内容包括技能应用篇:EXCEL、SQL、Python、BI工具等,业务思维篇:常用的数据分析方法与业务思维等。
其中大部分问题点,没有绝对标准答案,所有问题点都是为了解决问题,大家如果有更好的问题答案,也可以提出,对于其中的问题也可以提出,共同解答,欢迎点赞、转发、评论,下面一起来学习。
本文讲解内容:Excel、SQL、Python面试必备
适用范围:多种数据分析实用技巧
Excel篇
1、Excel创建多级下拉菜单
首先创建一组数据源,其中,省份为一级下拉菜单,市为二级下拉菜单,县为三级下拉菜单,并且在创建二级和三级菜单时,表头标题必须为前一级菜单里的内容。
鼠标框选创建好的数据源,使用快捷键Ctrl+G,点击定位条件。
在定位条件中勾选常量,点击确定。
点击公式选项卡中的根据所选内容创建。
弹出根据所选内容创建名称对话框后,勾选首行选项,再点击确定按钮。
创建一个需要下拉菜单的数据表,鼠标选中省份下需要创建一级菜单的数据区域,在数据选项卡下点击数据验证。
在允许里选择序列选项,来源选择之前创建的一级菜单省份下的数据区域,点击确定,一级下拉菜单就创建好了。
接下来创建二级下拉菜单,鼠标框选需要创建二级下拉菜单数据区域,在允许里选择序列,在来源里写入公式=INDIRECT($E2),INDIRECT返回由文本字符串指定的引用。
同样创建三级下拉菜单,鼠标框选需要创建三级下拉菜单数据区域,在允许里选择序列,在来源里写入公式=INDIRECT($F2)。
如下即创建了多级下拉菜单的数据表。
2、Excel批量生成工资条
首先间隔行创建辅助列,辅助列如下所示。
使用快捷键Ctrl+G,点击定位条件。
在定位条件中勾选空值。
定位出空的单元格后,右键点击插入。
插入整行后点击确定。
即可将原始数据每隔一行插入一行数据。
复制表格标题行,然后使用Ctrl+G快捷键定位出空值。
使用Ctrl+V快捷键快速粘贴标题行。
3、Excel快速插入间隔行
如下是一组工资数据,需要每隔一条工资数据批量插入两个空行。
如下创建辅助列,辅助列以递增的序列进行排列,创建多组辅助列。
点击按照升序排列,即可得到如下的结果,每一条工资数据间隔两行。
SQL篇
有一个学生课程数据库,数据库中包括三个表。
- 学生表Student由学号Sno、姓名Sname、性别Ssex、年龄Sage、所在系Sdept组成,可记为:Student(Sno,Sname,Ssex,Sage,Sdept)其中,Sno为关键字。
- 课程表Course由课程号Cno,课程名Cname、先修课号Cpno、学分Ccredit四个属性组成,可记为:Course(Cno,Cname,Cpno,Ccredit)Cno为关键字。
- 学生选课表SC由学号Sno、课程号Cno、成绩Grade)三个属性组成,可记为:SC(Sno,Cno,Grade)(SNO,CNO)为关键字。
完成下列题目:
第一问:请把其中建立学生表Student的话句写下来,表Student是由学号Sno、姓名Sname、性别Ssex、年龄Sage、所在系Sdept五个属性组成,其中学号属性不能空,并且其值是唯一的。
CREATE TABLE Student
(Sno varchar(20) PRIMARY KEY,
Sname varchar(10),
Ssex char(2),
Sage int,
Sdept varchar(25));
第二问:在Student表中查询Sdept是计算机的学生的所有信息,并按Sno列降序排列。
select *
from Student
where Sdept = "计算机"
order by Sno desc;
第三问:在以上的三个表中查询Ccredit为5,并且Grade大于60的学生的学号、姓名和性别信息。
select a.Sno,a.Sname,a.Ssex
from Student
a join (Course b, SC c)
on a.Sno=c.Sno and b.Cno =c.Cno
where Ccredit = 5 and Grade > 60;
Python篇
Excel数据批量操作包括Excel文件拆分到不同的工作簿、将Excel文件拆分到不同的工作表、将不同的工作簿合并到一个Excel文件中、将不同的工作表合并到一个Excel文件中、Excel批量创建多个工作簿。
1、将Excel文件拆分到不同工作簿
import pandas as pd
df=pd.read_excel(r'C:\Desktop\学生成绩表.xlsx')
for i in df['科目'].unique():
df[df['科目']==i].to_excel(f"C:\Desktop\数据拆分\{i}.xlsx",index=False)
2、将Excel文件拆分到不同工作表
import pandas as pd
df=pd.read_excel(r'C:\Desktop\数据拆分\学生成绩表.xlsx')
writer=pd.ExcelWriter(r'C:\Desktop\不同科目成绩表.xlsx')
for i in df['科目'].unique():
df[df['科目']==i].to_excel(writer,sheet_name=i,index=False)
writer.save()
3、将不同工作簿合并到一个Excel文件中
import os
path=r'C:\Desktop\数据合并'
listdir=os.listdir(path)
df=pd.read_excel(path+'\\'+ listdir[0])#导入第一个数据表
for filename in listdir[1:]:
dfi=pd.read_excel(path+'\\'+ filename) #导入除第一个数据表外其他数据表
df=pd.concat([df,dfi],sort=False) #数据纵向合并
df.to_excel(r'C:\Desktop\学生成绩数据合并.xlsx',index=False)
4、将不同工作表合并到一个Excel文件中
import pandas as pd
path=r'C:\Desktop\数据合并\不同科目成绩表.xlsx'
sheet_names=pd.ExcelFile(path).sheet_names
df=pd.read_excel(path,sheet_name=0)#导入第一个sheet表
for sheetname in sheet_names[1:]:
dfi=pd.read_excel(path,sheetname) #导入除第一个sheet表外其他sheet表
df=pd.concat([df,dfi],sort=False) #数据纵向合并
df.to_excel(r'C:\Desktop\学生成绩不同sheet表数据合并.xlsx',index=False)
5、Excel批量创建多个工作簿
from openpyxl import Workbook
import os
os.mkdir(r'C:\Desktop\批量创建文件夹')#创建一个新的文件夹
name_list = ["湖南","湖北","河南","河北","山东","山西","广东","广西","贵州","陕西"]
for name in name_list:
wb = Workbook()
wb.save(filename = f"C:\Desktop\批量创建文件夹\{name}.xlsx")
三年互联网数据分析经验,擅长Excel、SQL、Python、PowerBI数据处理工具,数据可视化、商业数据分析技能,统计学、机器学习知识,持续创作数据分析内容,点赞关注,不迷路,后台私信,免费获取数据分析资料。