2026年太平洋保险招聘数据分析岗专业笔试SQL与Python基础_第1页
2026年太平洋保险招聘数据分析岗专业笔试SQL与Python基础_第2页
2026年太平洋保险招聘数据分析岗专业笔试SQL与Python基础_第3页
2026年太平洋保险招聘数据分析岗专业笔试SQL与Python基础_第4页
2026年太平洋保险招聘数据分析岗专业笔试SQL与Python基础_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

2026年太平洋保险招聘数据分析岗专业笔试(SQL与Python基础)一、SQL查询题(共5题,每题8分,总分40分)1.查询客户续保情况假设太平洋保险有表`policy`(保单表),包含字段:`policy_id`(保单号)、`customer_id`(客户号)、`policy_type`(保单类型)、`start_date`(生效日期)、`end_date`(到期日期)、`is_renewed`(是否续保)。请查询2025年12月31日前到期的所有保单中,未续保的客户数量。2.查询高价值客户假设有表`customer`(客户表),包含字段:`customer_id`(客户号)、`name`(姓名)、`age`(年龄)、`reg_date`(注册日期)、`total_spent`(累计保费支出)。请查询2020年1月1日之后注册,且累计保费支出超过10万元的客户名单,按`total_spent`降序排列。3.查询保单分布情况假设有表`policy`(保单表)和`region`(区域表),`policy`表包含`region_id`(区域ID),`region`表包含`region_id`(区域ID)、`region_name`(区域名称)。请查询每个区域的保单数量,并按保单数量降序排列。4.查询保单延期情况假设`policy`表包含`policy_id`(保单号)、`end_date`(到期日期)、`actual_end_date`(实际到期日期)。请查询所有实际到期日期晚于理论到期日期的保单,并统计这类保单的数量。5.查询客户保单类型占比假设`policy`表包含`customer_id`(客户号)、`policy_type`(保单类型)。请查询每个客户的保单类型数量占比,结果保留两位小数。二、Python编程题(共4题,每题10分,总分40分)1.数据清洗假设有一份太平洋保险的保单数据,存储在CSV文件`policy_data.csv`中,字段包括:`policy_id`(保单号)、`customer_id`(客户号)、`policy_type`(保单类型)、`start_date`(生效日期)、`end_date`(到期日期)。请用Python读取该文件,并将`start_date`和`end_date`转换为`datetime`格式,同时处理缺失值(用`None`填充)。最终输出处理后的DataFrame。2.数据分析假设有一份太平洋保险的客户数据,存储在CSV文件`customer_data.csv`中,字段包括:`customer_id`(客户号)、`age`(年龄)、`policy_count`(保单数量)、`last_purchase_date`(最近购买日期)。请用Python分析:(1)计算每个客户的保单数量中位数。(2)找出最近一年内未购买保单的客户(`last_purchase_date`为空或早于2025年1月1日),并统计这类客户的数量。3.生成统计报告假设有一份太平洋保险的理赔数据,存储在CSV文件`claim_data.csv`中,字段包括:`claim_id`(理赔号)、`policy_id`(保单号)、`claim_amount`(理赔金额)、`claim_date`(理赔日期)。请用Python生成一个统计报告:(1)按月统计理赔金额总和。(2)找出理赔金额超过5万元的理赔记录,并按`claim_date`升序排列。4.机器学习基础假设有一份太平洋保险的客户数据,存储在CSV文件`customer_data.csv`中,字段包括:`customer_id`(客户号)、`age`(年龄)、`policy_count`(保单数量)、`churn`(是否流失,1为流失,0为未流失)。请用Python:(1)用`train_test_split`将数据随机分成训练集和测试集(8:2)。(2)用逻辑回归模型预测客户是否流失,并输出模型准确率。三、综合应用题(共1题,20分)1.保单分析项目假设太平洋保险希望分析保单续保的影响因素,你有一份数据集,包含以下表格:-`policy`(保单表):`policy_id`、`customer_id`、`policy_type`、`start_date`、`end_date`、`is_renewed`-`customer`(客户表):`customer_id`、`age`、`region`、`reg_date`-`transaction`(交易表):`transaction_id`、`policy_id`、`amount`、`date`请用SQL和Python完成以下任务:(1)用SQL查询2024年续保率最高的保单类型。(2)用Python分析不同年龄段的续保率差异,并绘制柱状图。(3)结合交易数据,找出续保客户的平均交易金额,并与未续保客户进行比较。答案与解析一、SQL查询题1.答案:sqlSELECTCOUNT()ASunrenewed_countFROMpolicyWHEREend_date<='2025-12-31'ANDis_renewed='No';解析:-`end_date<='2025-12-31'`:筛选2025年12月31日前到期的保单。-`is_renewed='No'`:筛选未续保的保单。-`COUNT()`:统计未续保保单数量。2.答案:sqlSELECTcustomer_id,name,total_spentFROMcustomerWHEREreg_date>'2020-01-01'ANDtotal_spent>100000ORDERBYtotal_spentDESC;解析:-`reg_date>'2020-01-01'`:筛选2020年1月1日后注册的客户。-`total_spent>100000`:筛选累计保费支出超过10万元客户。-`ORDERBYtotal_spentDESC`:按保费降序排列。3.答案:sqlSELECTr.region_name,COUNT(p.policy_id)ASpolicy_countFROMpolicypJOINregionrONp.region_id=r.region_idGROUPBYr.region_nameORDERBYpolicy_countDESC;解析:-`JOIN`:连接`policy`和`region`表。-`GROUPBYr.region_name`:按区域分组统计保单数量。-`ORDERBYpolicy_countDESC`:按数量降序排列。4.答案:sqlSELECTCOUNT()ASdelayed_countFROMpolicyWHEREactual_end_date>end_date;解析:-`actual_end_date>end_date`:筛选实际到期日期晚于理论日期的保单。-`COUNT()`:统计这类保单数量。5.答案:sqlSELECTcustomer_id,policy_type,COUNT(policy_type)100.0/SUM(COUNT(policy_type))OVER(PARTITIONBYcustomer_id)ASpercentageFROMpolicyGROUPBYcustomer_id,policy_type;解析:-`COUNT(policy_type)`:统计每个客户的保单类型数量。-`SUM(COUNT(policy_type))OVER(PARTITIONBYcustomer_id)`:计算每个客户的总保单数量。-`percentage`:计算占比并保留两位小数。二、Python编程题1.答案:pythonimportpandasaspddf=pd.read_csv('policy_data.csv')df['start_date']=pd.to_datetime(df['start_date'],errors='coerce')df['end_date']=pd.to_datetime(df['end_date'],errors='coerce')df.fillna({'start_date':None,'end_date':None},inplace=True)print(df)解析:-`pd.to_datetime`:将日期字符串转换为`datetime`格式,`errors='coerce'`将无效日期转为`NaT`。-`fillna`:用`None`填充缺失值。2.答案:pythonimportpandasaspddf=pd.read_csv('customer_data.csv')df['last_purchase_date']=pd.to_datetime(df['last_purchase_date'],errors='coerce')计算中位数median_policy_count=df['policy_count'].median()print(f"保单数量中位数:{median_policy_count}")找出最近一年内未购买客户unpurchased_customers=df[(df['last_purchase_date'].isna())|(df['last_purchase_date']<'2024-01-01')]print(f"未购买客户数量:{len(unpurchased_customers)}")解析:-`median_policy_count`:计算保单数量的中位数。-`unpurchased_customers`:筛选最近一年内未购买保单的客户。3.答案:pythonimportpandasaspddf=pd.read_csv('claim_data.csv')df['claim_date']=pd.to_datetime(df['claim_date'],errors='coerce')按月统计理赔金额总和df['month']=df['claim_date'].dt.to_period('M')monthly_claims=df.groupby('month')['claim_amount'].sum()print(monthly_claims)理赔金额超过5万元的记录high_value_claims=df[df['claim_amount']>50000].sort_values('claim_date')print(high_value_claims)解析:-`to_period('M')`:将日期转换为月份。-`groupby`:按月份统计理赔金额总和。4.答案:pythonfromsklearn.model_selectionimporttrain_test_splitfromsklearn.linear_modelimportLogisticRegressionfromsklearn.metricsimportaccuracy_scoredf=pd.read_csv('customer_data.csv')df['last_purchase_date']=pd.to_datetime(df['last_purchase_date'],errors='coerce')划分训练集和测试集X=df[['age','policy_count']]y=df['churn']X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.2,random_state=42)逻辑回归模型model=LogisticRegression()model.fit(X_train,y_train)predictions=model.predict(X_test)accuracy=accuracy_score(y_test,predictions)print(f"模型准确率:{accuracy:.2f}")解析:-`train_test_split`:随机划分训练集和测试集。-`LogisticRegression`:构建逻辑回归模型并预测。三、综合应用题答案:sql--(1)续保率最高的保单类型SELECTpolicy_type,COUNT()100.0/SUM(COUNT())OVER()ASrenewal_rateFROMpolicyWHEREis_renewed='Yes'GROUPBYpolicy_typeORDERBYrenewal_rateDESCLIMIT1;--(2)续保率与年龄关系(Python)importpandasaspdimportmatplotlib.pyplotaspltdf_policy=pd.read_sql_query("SELECTFROMpolicy",connection)df_customer=pd.read_sql_query("SELECTFROMcustomer",connection)df=pd.merge(df_policy,df_customer,on='customer_id')按年龄段分组df['age_group']=pd.cut(df['age'],bins=[0,30,40,50,60,100],labels=['0-30','31-40','41-50','51-60','60+'])ren

温馨提示

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

最新文档

评论

0/150

提交评论