2022年泰迪杯数据分析_B题:银行客户忠诚度分析赛题数据_任务3.4

import pandas as pd

3.4.1

long_data15=pd.read_excel('result1_2.xlsx')
long_data15.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 9180 entries, 0 to 9179
Data columns (total 11 columns):
 #   Column           Non-Null Count  Dtype  
---  ------           --------------  -----  
 0   CustomerId       9180 non-null   int64  
 1   CreditScore      9180 non-null   int64  
 2   Gender           9180 non-null   int64  
 3   Age              9180 non-null   int64  
 4   Tenure           9180 non-null   int64  
 5   Balance          9180 non-null   float64
 6   NumOfProducts    9180 non-null   int64  
 7   HasCrCard        9180 non-null   int64  
 8   IsActiveMember   9180 non-null   int64  
 9   EstimatedSalary  9180 non-null   float64
 10  Exited           9180 non-null   int64  
dtypes: float64(2), int64(9)
memory usage: 789.0 KB

此处对Tenure、Balance列的值进行划分。

long_data16=long_data15.copy()
long_data16.loc[(long_data16.Tenure>6),'Status']='老客户'
long_data16.loc[(long_data16.Tenure<=3),'Status']='稳定客户'
long_data16.loc[(long_data16.Status.isna()),'Status']='新客户'

long_data16.loc[(long_data16.Balance>120000),'AssetStage']='高资产'
long_data16.loc[(long_data16.Balance>90000) & (long_data16.Balance<=120000),'AssetStage']='中上资产'
long_data16.loc[(long_data16.Balance>50000) & (long_data16.Balance<=90000),'AssetStage']='中下资产'
long_data16.loc[(long_data16.Balance<=50000),'AssetStage']='低资产'
long_data17=long_data16.copy()

对文件中的数据进行特征编码,依然采用preprocessing.LabelEncoder将汉字进行编码。

from sklearn.preprocessing import LabelEncoder
t1=long_data16.loc[:,'Status']    #要输入的是标签,不是特征矩阵,所以允许一维数据
t2=long_data16.loc[:,'AssetStage']

le1 = LabelEncoder()     #实例化
le1 = le1.fit(t1) # 导入数据
label1 = le1.transform(t1) # transform接口调取结果
long_data16.loc[:,"Status"] = label1
print(long_data16['Status'].unique())

le2 = LabelEncoder()     #实例化
le2 = le2.fit(t2) # 导入数据
label2 = le2.transform(t2) # transform接口调取结果
long_data16.loc[:,"AssetStage"] = label2
long_data16['AssetStage'].unique()
[1 2 0]





array([3, 2, 0, 1])

对编码之后的数据保存

long_data16.to_excel("result3.xlsx",encoding = 'openpyxl',index = False)
long_data16.head(5)
CustomerIdCreditScoreGenderAgeTenureBalanceNumOfProductsHasCrCardIsActiveMemberEstimatedSalaryExitedStatusAssetStage
0155532517131520185891.5411146369.57113
11555325661914180.0031179866.73122
215553283603142891611.12100144675.30120
31555330858916110.0011061108.56112
41555338768713920.00300188150.60112
long_data17.head(5)
CustomerIdCreditScoreGenderAgeTenureBalanceNumOfProductsHasCrCardIsActiveMemberEstimatedSalaryExitedStatusAssetStage
0155532517131520185891.5411146369.571稳定客户高资产
11555325661914180.0031179866.731老客户低资产
215553283603142891611.12100144675.301老客户中上资产
31555330858916110.0011061108.561稳定客户低资产
41555338768713920.00300188150.601稳定客户低资产

3.4.2

long_data18=long_data17.copy()
long_data18=long_data18[long_data18['Exited']==1]
long_data18
CustomerIdCreditScoreGenderAgeTenureBalanceNumOfProductsHasCrCardIsActiveMemberEstimatedSalaryExitedStatusAssetStage
0155532517131520185891.5411146369.571稳定客户高资产
11555325661914180.0031179866.731老客户低资产
215553283603142891611.12100144675.301老客户中上资产
31555330858916110.0011061108.561稳定客户低资产
41555338768713920.00300188150.601稳定客户低资产
..........................................
9162158152717550436165048.5031016929.411新客户高资产
916415815316644050976817.00410196371.131老客户中下资产
9168158154906700402164948.98300177028.001稳定客户高资产
917415815626640063268432.45211112503.241稳定客户中下资产
9177158156565411399100116.67111199808.101老客户中上资产

1837 rows × 13 columns

pd.pivot_table(long_data18,index=['AssetStage','Status'],values=['Exited'],aggfunc='count')
Exited
AssetStageStatus
中上资产新客户151
稳定客户181
老客户175
中下资产新客户51
稳定客户57
老客户53
低资产新客户152
稳定客户180
老客户142
高资产新客户206
稳定客户246
老客户243
long_data19=pd.pivot_table(long_data18,index=['AssetStage','Status'],values=['Exited'],aggfunc='count')
long_data19.to_csv('新老客户.csv')
long_data19
Exited
AssetStageStatus
中上资产新客户151
稳定客户181
老客户175
中下资产新客户51
稳定客户57
老客户53
低资产新客户152
稳定客户180
老客户142
高资产新客户206
稳定客户246
老客户243



  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值