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.每日订单预测
略