数据分析师面试必备,数据分析面试题集锦(四)

大家好,今天整理数据分析面试题集锦,经常会被问到,"数据分析需要学习什么技能?","针对实际的业务场景,如何使用数据分析工具去分析?"基于此作者总结数据分析面试常用的问题,面试内容包括技能应用篇: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篇

有一个学生课程数据库,数据库中包括三个表。

  1. 学生表Student由学号Sno、姓名Sname、性别Ssex、年龄Sage、所在系Sdept组成,可记为:Student(Sno,Sname,Ssex,Sage,Sdept)其中,Sno为关键字。
  2. 课程表Course由课程号Cno,课程名Cname、先修课号Cpno、学分Ccredit四个属性组成,可记为:Course(Cno,Cname,Cpno,Ccredit)Cno为关键字。
  3. 学生选课表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数据处理工具,数据可视化、商业数据分析技能,统计学、机器学习知识,持续创作数据分析内容,点赞关注,不迷路,后台私信,免费获取数据分析资料。

相关推荐
2401_8543910814 分钟前
城镇住房保障:SpringBoot系统功能概览
java·spring boot·后端
hummhumm15 分钟前
Oracle 第29章:Oracle数据库未来展望
java·开发语言·数据库·python·sql·oracle·database
木小同22 分钟前
JAVA基础之NIO
面试·java基础·nio
wainyz24 分钟前
Java NIO操作
java·开发语言·nio
工业3D_大熊30 分钟前
【虚拟仿真】CEETRON SDK在船舶流体与结构仿真中的应用解读
java·python·科技·信息可视化·c#·制造·虚拟现实
lzb_kkk38 分钟前
【JavaEE】JUC的常见类
java·开发语言·java-ee
爬山算法1 小时前
Maven(28)如何使用Maven进行依赖解析?
java·maven
2401_857439691 小时前
SpringBoot框架在资产管理中的应用
java·spring boot·后端
怀旧6661 小时前
spring boot 项目配置https服务
java·spring boot·后端·学习·个人开发·1024程序员节
李老头探索1 小时前
Java面试之Java中实现多线程有几种方法
java·开发语言·面试