处理数据中的缺失值

数据集:

 

train=pd.read_csv('./1.csv')//用代码读取数据
print(train)//并对其输出
输出结果:

    id    sd   q
0 NaN 7.0 1.0
1 NaN NaN NaN
2 NaN 4.0 7.0
3 4.0 NaN 6.0
4 NaN 6.0 11.0
5 2.0 NaN 3.0

补充缺失值的几种方法。

1、将所有缺失值补为0。

2、用缺失值上面的值,对其进行补充。

3、用缺失值下面的值,对其进行补充。

4、用该列的中位数填充缺失值。

5、用该列的众数填充缺失值。

1:

用0补充缺失值用fillna(0)

 

 fillna的返回值是被填充好的框架。

代码:

train=pd.read_csv('./1.csv')
train=train.fillna(0)
print(train)
输出结果:

 

 2:

用缺失值上面的值对其进行代替用函数

data = data.fillna(axis=0,method='ffill')

print(data)

输出结果:

 

 得出结论边界为Nan时,采用上边界值补全缺失值不会报错,但不会处理上边界的缺失值。

method参数:

 

ffill参数其翻译过来就是取前一个数对缺失值进行填充。

axis表示取填充值的方向0为竖轴方向,1为横向。

 如果加上limit代表能连续填充多少个值:

比如

1

Nan

Nan

Nan

如果limit=2

就会变为

1

1

1

Nan

 4.中位数填充缺失值

4.1选出连续的值。

通过选出列属性为非object的值在调用columns函数即可得出列名。

代码:

column=train.select_dtypes(exclude=['object']).columns
print(column)
输出:
Index(['id', 'sd', 'q'], dtype='object')
之后在指定列调用fillna函数,填写该列空缺值用该列的中位数。
for i in column:
    train[i]=train[i].fillna(train[i].median())
print(train)
输出值:

 

 

posted @ 2021-09-08 20:43  祥瑞哈哈哈  阅读(441)  评论(0)    收藏  举报