365速发国际靠谱么-365_体育投注英超和欧冠-365bet主页器

关于数据分析之空值处理

关于数据分析之空值处理

空值是数据分析中经常遇到的情况,让人无所适从,是当垃圾数据一样抛弃,还是置一些缺省值,尚未定论。就本人而言如果是文本型的一般会填充某个从未遇到的缺省值来替代,如果是数值,一般用加权平均代替,当然有更多的方法。

下图为几条样例数据,关于学生成绩的。

要进行缺失值分析,首先要进行数据读取,下文是读取csv文件的几个例子。

代码语言:javascript复制import numpy as np

from sklearn import neural_network

import pandas as pd

mydata= pd.read_csv('C:\Python\Pycharm\machine\schoolrecord.csv')

print('---------------------------行列取值-----------------------------')

print( '\norgdata=\n',mydata)

columnname=['id','maths','english']

newdata=mydata[columnname]

print( "\nmydata[['id','maths','english']]=\n",newdata)

newdata=mydata.iloc[:,3]

print( '\nmydata.iloc[:,3]=\n',newdata)

newdata=mydata.loc[:,'maths']

print( "\nmydata.loc[:,'maths']=\n",newdata)

newdata=mydata['maths']

print( "\nmydata['maths']=\n",newdata)

newdata=mydata.maths

print( '\nmydata.maths=\n',newdata)

row=mydata.loc[:,'maths']

print( "\nmydata.loc[:,'maths']=\n",row)下列代码是关于缺失值构造的几种常规方法,填0、填平均值、填上一列上一行值。

代码语言:javascript复制print('---------------------------空值处理-----------------------------')

mydata= pd.read_csv('C:\Python\Pycharm\machine\schoolrecord.csv')

print( '\nmydata.isna()=\n',mydata.isna())

# 空值填充0

mydata.fillna(0,inplace=True)

print(mydata)

print( '\nmydata.fillna(0,inplace=True)=\n',mydata)

mydata= pd.read_csv('C:\Python\Pycharm\machine\schoolrecord.csv')

print('\nmydata.mean()\n=',mydata.mean())

# 空值填充均值

mydata.fillna(mydata.mean(),inplace=True)

print( '\nmydata.fillna(mydata.mean(),inplace=True)=\n',mydata)

mydata= pd.read_csv('C:\Python\Pycharm\machine\schoolrecord.csv')

# 空值错行填充

mydata.fillna(method='ffill',inplace=True)

print( "\nmydata.fillna(method='ffill',inplace=True)=\n",mydata)

mydata= pd.read_csv('C:\Python\Pycharm\machine\schoolrecord.csv')

# newdata=mydata.fillna(method='ffill',axis=1,inplace=True) 、

# 直接用inplace语法会抛出异常:raise NotImplementedError()

# 空值错列填充

newdata=mydata.fillna(method='ffill',axis=1)

print( "\nmydata.fillna(method='ffill',axis=1)=\n",newdata)下文是通过多层感知机进行缺省值预测,也称为多层神经网络(大于等于3层,即至少含有1层隐含层),也称为全连接神经网络。

最简单的MLP只含一个隐层,即三层的结构

代码语言:javascript复制# 通过机器学习MLP神经网络算法填充缺失值

mydata= pd.read_csv('C:\Python\Pycharm\machine\schoolrecord.csv')

newdata=mydata.sort_values(by=['maths'],na_position='last')

print('\nnewdata=\n',newdata)

# 获取非空的训练集

train_x=newdata.iloc[:7,1:3]

print('\ntrainx=\n',train_x)

# 获取非空的结果集

train_y=newdata.iloc[:7,3:4]

print('\ntrainy=\n',train_y)

# 多层感知器分类器-MLPClassifier

model=neural_network.MLPClassifier()

# 进行模型训练

model.fit(train_x,train_y)

# 获取空的测试集

test_x=newdata.iloc[7:,1:3]

# 进行模型预测

test_y=model.predict(test_x)

print('\ntest_x=\n',test_x)

print('\ntest_y=\n',test_y)

newdata.iloc[7:,3:4]=test_y.tolist()

print('\nmydata=\n',mydata)

print('\nnewdata=\n',newdata)

相关推荐

365_体育投注英超和欧冠 美团一线城市乐跑骑手月收入超12000元
365速发国际靠谱么 魔兽世界11.0附魔怎么冲
365_体育投注英超和欧冠 安全验证

安全验证

08-04 85