《用Pandas玩转数据(2)》摘抄

1.企业欺诈识别

frame.drop(frame.columns[len(frame.columns)-1],axis=1,inplace=True) #删除最后一列,其余的作为特征列
results=frame.applymap(np.isreal)
#applymap(函数a)可以将DtaFrame中所有元素都应用一下“函数a”的运算,np.isreal判断是不是数字
#只要某一列中存在一个非数字型数据,那么这一列就全是False

在这里插入图片描述

results=frame.applymap(np.isreal).all() #加上.all()就可以只显示我们需要的信息

在这里插入图片描述

results=frame.applymap(np.isreal).all()
print(results[(results==False)]) #只显示有问题的列

在这里插入图片描述

frame['LOCATION_ID']=pd.to_numeric(frame['LOCATION_ID'],errors='coerce') 
#将我们检索出来的异常列全部用数值填充那些异常数值,pd.to_numeric就是转为数值的意思,errors='coerce'就是用空值填充非数字的数据
results=frame.isnull() #返回一个和原始DataFrame一样大小的矩阵,其中True表示该数字为空值

在这里插入图片描述

results=frame.isnull().any(0) #使用any(0)当这一列内在任何一个空值则这一列返回True

在这里插入图片描述

results=frame.isnull().any(1) #使用any(1)当这一行内在任何一个空值则这一行返回True
print(results[results==True])

在这里插入图片描述

frame=frame.fillna(0) #使用0来填充对应的空值
imp=SimpleImputer(strategy='mean') #利用空值所在列的数据平均值来填充空值
newframe=imp.fit_transform(frame)
#不过,现在的newframe就变成numpy类型了
import  pandas as pd
from sklearn.impute import SimpleImputer

frame=pd.read_csv('F:/python数据/audit_risk.csv')
print(frame)  #数据是DataFrame类型
frame['LOCATION_ID']=pd.to_numeric(frame['LOCATION_ID'],errors='coerce') 
print(frame)  #数据还是DataFrame类型
imp=SimpleImputer(strategy='mean') #利用空值所在列的数据平均值来填充空值
newframe=imp.fit_transform(frame)
print(newframe)  #经过这一步处理,数据变成了numpy类型

'''我们有一步是划分特征数据与预测数据
y=frame[frame.columns[len(frame.columns)-1]] 
frame.drop(frame.columns[len(frame.columns)-1],axis=1,inplace=True) 
这一步必须趁着还是DataFrame类型时处理'''

在这里插入图片描述

2.会员卡预测

frame['yearly_income']=frame['yearly_income'].str.split(' ').str[0].str.replace('[^0-9]','') #我们只取下限作为年收入
#将 "$20k - $50k" 提取出“20”来
frame['yearly_income_new']=frame['yearly_income'].astype(int)
encoding=LabelEncoder() #使用这种方法将字符串映射为数字
encoding.fit(frame['education'])
education_new=encoding.transform(frame['education'])
encoding=OneHotEncoder()
newData=encoding.fit_transform(np.vstack(frame['education'].values)).todense()
frame_new=pd.DataFrame(newData)
frame_full=pd.merge(frame[['yearly_income','total_children','num_cars_owned']],frame_new,left_index=True,
                    right_index=True)
print(frame['yearly_income'].describe()) #了解这一列数据的总数,出现次数最高的数据,出现次数最高的数据出现的次数

print('------------------------------------------------')

print(frame['yearly_income'].unique()) #可以得到年收入的八种不同取值依次是什么

在这里插入图片描述

3.每日订单预测

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BlackTurn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值