Python数据分析面试题(真实职场版+详细答案)_第1页
Python数据分析面试题(真实职场版+详细答案)_第2页
Python数据分析面试题(真实职场版+详细答案)_第3页
Python数据分析面试题(真实职场版+详细答案)_第4页
Python数据分析面试题(真实职场版+详细答案)_第5页
已阅读5页,还剩1页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Python数据分析面试题(真实职场版+详细答案)说明:所有题目均为企业面试高频原题,剔除书面化套话,答案贴合日常工作实操,适合数据分析岗面试、笔试复盘。一、Python基础高频题1、列表和元组的区别?工作中分别怎么用?答案:1)核心区别:列表list可变、元组tuple不可变,列表可以增删改,元组定义后无法修改;2)性能:元组占用内存更小、运行更快、可哈希,能当字典key,列表不行;3)工作场景:-列表:存放经常变动的数据,比如读取的原始数据、循环收集的结果;-元组:存放固定不变的配置、维度、参数,比如字段名、固定筛选条件,防止代码运行中被误改。2、字典的key可以是哪些类型?为什么列表不能当key?答案:字典key必须是不可变、可哈希类型:字符串、数字、元组、布尔值都可以。列表是可变类型,内容可以随时修改,哈希值会变化,字典底层靠哈希值寻址,所以列表不能做key。工作中如果需要用数组当key,一般转成元组。3、Python中深拷贝和浅拷贝的区别?什么时候会踩坑?答案:1)浅拷贝:只拷贝外层对象,内部嵌套对象还是共用同一个内存地址,修改嵌套内容会互相影响;2)深拷贝:完全拷贝所有层级对象,新旧数据完全独立,互不影响;3)坑点:单层数据(纯数字、字符串)浅拷贝没问题,嵌套列表、字典做浅拷贝后,改新数据会改原数据,数据分析处理嵌套数据时经常遇到这个问题,复杂数据一律用deepcopy。二、Pandas核心高频题(重中之重)1、Series和DataFrame的区别?答案:Series是一维带索引数组,单列数据;DataFrame是二维表格,多列带行索引、列名,是数据分析最常用的结构。简单理解:DataFrame的每一行、每一列都是一个Series。2、Pandas中loc和iloc的区别?工作中怎么选?答案:-loc:按标签索引,根据行名、列名取值,闭区间,包含末尾;-iloc:按位置索引,根据0开始的数字下标取值,左闭右开;工作习惯:筛选字段、按条件选行用loc;纯切片、按位置取值用iloc。日常优先loc,不容易出错。3、Pandas读取大文件(几十万行/百万行)卡顿、内存溢出怎么解决?答案:工作中常用4种实操方案:1)分块读取:read_csv加chunksize参数,分批读取处理,不一次性加载全量数据;2)指定读取列:usecols只读取需要的字段,丢弃无用列,大幅节省内存;3)数据类型优化:dtype指定int8、float32、category类型,字符串分类字段转category能压缩大量内存;4)跳过无用行:skiprows跳过表头、无效空行。4、DataFrame缺失值怎么处理?分别适用什么场景?答案:三种主流处理方式,工作中按需选择:1)dropna()删除缺失值:适用于缺失数据极少、不影响整体样本,或者缺失行无分析价值;2)fillna()填充固定值:数值填0、字符串填未知,适用于缺失代表无数据、空值有业务含义;3)均值/中位数/众数填充:数值字段用均值、中位数(避免极值影响),分类字段用众数,适合数据缺失随机、需要保留样本量的场景。5、Pandas如何去除重复值?duplicated和drop_duplicates用法答案:duplicated():判断每行是否为重复行,返回布尔值,可用来筛选重复数据查看明细;drop_duplicates():直接删除重复行,keep='first'保留第一条、keep='last'保留最后一条;工作中可以指定subset=[字段1,字段2],按指定字段去重,不用全量匹配去重,适配业务唯一标识去重场景。6、groupby分组后apply、agg、transform的区别?答案:面试高频坑点,三者返回结果完全不同:1)agg:分组聚合,返回分组汇总结果,一行对应一个分组,用来求和、均值、计数;2)transform:分组计算后匹配原表每一行,不改变原表行数,常用于组内归一、组内排名、填充组内均值;3)apply:自定义复杂分组逻辑,灵活性最高,但速度最慢,简单计算优先用agg/transform,不要滥用apply。7、merge、join、concat的区别和使用场景答案:1)concat:纯拼接,横向或纵向合并表,不需要关联字段,适用于结构相同的多张表合并;2)merge:按关键字段关联两张表,类似SQL的join,支持左右内全连接,是数据分析主力关联方法;3)join:默认按索引关联,功能不如merge灵活,工作中几乎只用merge,很少用join。三、数据分析实战场景题(面试必问)1、怎么用Python实现SQL的where、groupby、orderby、limit逻辑?答案:实操对应关系:-where条件筛选:df.loc[df['字段']>数值]-groupby分组聚合:df.groupby('字段').agg(新字段=('指标','sum'))-orderby排序:df.sort_values('字段',ascending=False)-limit取前N行:df.head(N)2、数据分析中遇到异常值怎么处理?具体步骤是什么?答案:工作标准流程:1)先识别:用箱线图、3σ原则筛选异常值,比如订单金额负数、年龄几百岁、访问量极值;2)先溯源:优先核对业务原因,是数据采集bug、用户异常操作、还是正常极端案例;3)再处理:-业务无效异常:直接删除或标记剔除;-极值但有效:保留数据,采用中位数、缩尾处理,避免影响整体均值分析;-少量异常:替换为合理阈值。3、如何做数据透视表?pivot_table和groupby区别?答案:pivot_table是专业透视表,类似Excel透视表,支持行、列双维度分组,自带缺失值填充、聚合方式设置,结果更规整;groupby适合简单单维度、多维度聚合,灵活性更高,但格式需要自己调整。日常做报表、可视化汇总用pivot_table,做数据清洗、二次计算用groupby。四、Matplotlib/Seaborn可视化面试题1、常用图表分别适配什么分析场景?答案:职场标准用法:-折线图:时间序列、趋势变化,比如日活、月销售额走势;-柱状图:不同类别数值对比,比如各区域销量、各渠道流量;-饼图:占比结构分析,仅适用于分类少、差异明显的数据;-散点图:相关性分析,比如广告费和销售额的关联;-箱线图:分布、异常值检测,用于数据清洗、样本分布对比。2、画图中文乱码怎么解决?答案:固定实操代码(工作通用):导入库后设置:plt.rcParams['font.sans-serif']=['SimHei'],同时设置plt.rcParams['axes.unicode_minus']=False,解决负号显示异常。五、统计分析&业务面试题1、均值、中位数、众数的适用场景?什么时候不用均值?答案:-均值:数据分布均匀、无极端值时用,整体平均水平;-中位数:数据有极值、分布不对称,比如薪资、房价、订单金额,不受极值影响;-众数:分类数据、高频数据,比如用户最常选的商品、热门渠道;只要数据有明显极值、偏态分布,坚决不用均值,优先中位数。2、相关性分析怎么做?相关系数代表什么?答案:用df.corr()计算皮尔逊相关系数:-接近1:强正相关,A越高B越高;-接近-1:强负相关,A越高B越低;-接近0:无线性相关关系;注意:相关不等于因果,只能作为数据分析参考,不能直接下定论。六、面试高频坑点&易错点1、PandasSettingWithCopyWarning警告是什么原因?怎么解决?答案:原因:对切片后的子DataFrame直接赋值,系统无法判断是修改原数据还是新数据;解决:赋值前用.copy()生成新数据表,从根源消除警告,不忽略、不屏蔽警告,保证数据安全。2、为什么尽量不用for循环处理Pandas数据?答案:for循环是Python层级遍历,速度极慢,万行以上数据会明显卡顿;Pandas的向量化运算基于底层C语言,速度比循环快几十上百倍。工作中能用布尔索引、内置函数、agg替代循环就全部

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论