2025年数据分析师的Python知识试题及答案_第1页
2025年数据分析师的Python知识试题及答案_第2页
2025年数据分析师的Python知识试题及答案_第3页
2025年数据分析师的Python知识试题及答案_第4页
2025年数据分析师的Python知识试题及答案_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

2025年数据分析师的Python知识试题及答案一、单项选择题(每题3分,共30分)1.执行以下Python代码后,输出结果是()```pythonx=10deffunc():x=20definner():nonlocalxx+=5inner()print(x)func()```A.10B.20C.25D.152.关于提供器表达式与列表推导式的区别,以下描述错误的是()A.提供器表达式使用圆括号,列表推导式使用方括号B.提供器表达式是惰性计算,列表推导式立即提供所有元素C.提供器表达式内存占用更小,适合处理大数据量D.提供器表达式可以通过`list()`转换为列表,列表推导式不能转换为提供器3.现有PandasDataFrame`df`,其中列`A`包含缺失值。若需删除`A`列中缺失值占比超过50%的行,正确的操作是()A.`df=df.dropna(subset=['A'],thresh=0.5len(df))`B.`df=df[df['A'].isna().sum()/len(df)<0.5]`C.`df=df.dropna(axis=0,subset=['A'],how='any')`D.`df=df[df['A'].notna().sum()/len(df)>0.5]`4.以下NumPy数组操作中,会报错的是()A.`np.array([[1,2],[3,4]]).reshape(4,)`B.`np.array([1,2,3]).reshape(3,1)`C.`np.array([1,2,3,4]).reshape(2,3)`D.`np.array([[[1],[2]],[[3],[4]]]).reshape(4,)`5.对两个DataFrame`df1`(列:id,name)和`df2`(列:id,score)执行`pd.merge(df1,df2,on='id',how='left')`后,结果中`score`列的缺失值表示()A.`df2`中无对应`id`的记录B.`df1`中无对应`id`的记录C.`df1`和`df2`均无对应`id`的记录D.合并时发生了数据错误6.执行以下代码后,`result`的输出是()```pythonimportpandasaspddata={'A':[1,2,None,4],'B':[5,None,7,8]}df=pd.DataFrame(data)result=df.dropna(thresh=2).shape[0]```A.1B.2C.3D.47.以下Matplotlib代码中,用于设置子图共享x轴的参数是()A.`sharex=True`B.`xshare='all'`C.`shared_x='yes'`D.`share_xaxis=True`8.正则表达式`r'(\d{3})-(\d{4})'`匹配字符串`"电话:123-4567"`时,`re.match`返回的分组数量是()A.0B.1C.2D.39.以下异常处理代码中,`finally`块的执行时机是()```pythontry:f=open('test.txt','r')print(f.read())exceptFileNotFoundError:print("文件不存在")finally:f.close()```A.仅当无异常时执行B.仅当发生异常时执行C.无论是否发生异常都执行D.仅当`try`块完全执行后执行10.使用`sklearn.model_selection.train_test_split`划分数据集时,若设置`random_state=42`,其主要作用是()A.确保每次划分的随机结果一致B.提高模型训练速度C.增加测试集的代表性D.减少训练集的过拟合风险二、填空题(每题4分,共20分)1.Pandas中,用于将DataFrame的行索引转换为列的方法是______。2.NumPy中,计算数组`arr=np.array([[1,2],[3,4]])`对角线元素之和的函数是______。3.在Seaborn中,用于绘制两个连续变量的散点图并添加回归趋势线的函数是______。4.Python中,使用`withopen('data.txt','w')asf`语句打开文件的优势是______。5.若需对DataFrame的`age`列进行Z-score标准化,公式为______(用Python表达式表示)。三、编程题(每题8分,共40分)1.读取本地CSV文件`ecommerce_sales.csv`,要求:-指定`order_date`列解析为日期类型;-将`customer_id`列的数据类型转换为字符串;-输出前3行数据。2.对DataFrame`df`(包含列`price`)进行以下处理:-计算`price`列的缺失值占比,若超过10%则用该列中位数填充,否则删除缺失值;-输出处理后的`price`列描述性统计(均值、标准差、分位数)。3.按`category`列对DataFrame`df`分组,计算每组的:-销售额(`sales`列)总和;-销量(`quantity`列)的均值(保留2位小数);-客户数(`customer_id`列去重后的数量);-结果命名为`total_sales`、`avg_quantity`、`unique_customers`。4.使用Matplotlib绘制2023年各月销售额趋势图:-x轴为月份(格式:2023-01),y轴为销售额;-折线颜色为蓝色,标记为圆形;-添加标题“2023年月度销售额趋势”,x轴标签“月份”,y轴标签“销售额(万元)”;-显示网格线。5.对`user_behavior`数据集(包含列`user_id`,`event_time`,`event_type`)进行以下操作:-提取`event_time`的小时(如14:30:00提取为14),新增`hour`列;-统计每个小时内`event_type='purchase'`的事件数量;-输出事件数量最多的前3个小时。四、综合应用题(每题15分,共30分)1.某电商数据集`user_transaction.csv`包含以下字段:`user_id`(用户ID)、`order_id`(订单ID)、`order_time`(下单时间)、`amount`(订单金额)、`platform`(下单平台:APP/PC)。要求完成以下分析:a.计算每个用户的首单时间(最早`order_time`)和末单时间(最晚`order_time`);b.统计不同平台的订单金额总和及订单数量;c.绘制平台订单金额占比的饼图,要求显示百分比(保留1位小数),标题为“各平台订单金额占比”。2.使用`sklearn`的线性回归模型预测用户复购率(目标变量`repurchase_rate`),特征变量为`avg_order_amount`(平均订单金额)、`order_frequency`(下单频率)、`customer_age`(用户年龄)。要求:a.将数据集按8:2划分为训练集和测试集(随机状态设为2025);b.训练线性回归模型并输出各特征的系数;c.计算测试集的均方误差(MSE)和决定系数(R²);d.分析哪个特征对复购率的影响最大(基于系数绝对值)。答案一、单项选择题1.C2.D3.A4.C5.A6.B7.A8.C9.C10.A二、填空题1.`reset_index()`2.`np.trace(arr)`3.`sns.regplot()`4.自动关闭文件,避免资源泄露5.`(df['age']-df['age'].mean())/df['age'].std()`三、编程题1.参考代码:```pythonimportpandasaspddf=pd.read_csv('ecommerce_sales.csv',parse_dates=['order_date'],dtype={'customer_id':'str'})print(df.head(3))```2.参考代码:```pythonmissing_rate=df['price'].isna().mean()ifmissing_rate>0.1:df['price']=df['price'].fillna(df['price'].median())else:df=df.dropna(subset=['price'])print(df['price'].describe())```3.参考代码:```pythonresult=df.groupby('category').agg(total_sales=('sales','sum'),avg_quantity=('quantity',lambdax:round(x.mean(),2)),unique_customers=('customer_id','nunique')).reset_index()```4.参考代码:```pythonimportmatplotlib.pyplotaspltdf['month']=df['order_date'].dt.strftime('%Y-%m')monthly_sales=df.groupby('month')['sales'].sum().reset_index()plt.figure(figsize=(10,6))plt.plot(monthly_sales['month'],monthly_sales['sales'],color='blue',marker='o')plt.title('2023年月度销售额趋势')plt.xlabel('月份')plt.ylabel('销售额(万元)')plt.grid(True)plt.show()```5.参考代码:```pythondf['hour']=pd.to_datetime(df['event_time']).dt.hourpurchase_hour=df[df['event_type']=='purchase'].groupby('hour').size().reset_index(name='count')top3_hours=purchase_hour.sort_values('count',ascending=False).head(3)print(top3_hours)```四、综合应用题1.参考代码及结果:a.首单和末单时间计算:```pythonuser_orders=df.groupby('user_id')['order_time'].agg(first_order=('min'),last_order=('max')).reset_index()```b.平台订单统计:```pythonplatform_stats=df.groupby('platform').agg(total_amount=('amount','sum'),order_count=('order_id','nunique')).reset_index()```c.饼图绘制:```pythonplt.figure(figsize=(8,8))plt.pie(platform_stats['total_amount'],labels=platform_stats['platform'],autopct='%.1f%%',startangle=90)plt.title('各平台订单金额占比')plt.show()```2.参考代码及分析:a.数据集划分:```pythonfromsklearn.model_selectionimporttrain_test_splitX=df[['avg_order_amount','order_frequency','customer_age']]y=df['repurchase_rate']X_train,X_test,y_train,y_tes

温馨提示

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

评论

0/150

提交评论