一、查看缺失值
使用的是Pandas
import pandas as pd
data_path = 'hour.csv'
rides = pd.read_csv(data_path, encoding='gbk') #加上encoding可以识别中文
1、查看哪列值有缺失,有缺失的返回True
rides.isnull().any()
输出:
instant False
temp False
atemp True #============这里就有缺失值
hum False
dtype: bool
2、统计每列缺失值的数量
rides.isnull().sum()
结果:
instant 0
atemp 41 #========该列缺失41个数值
hum 0
dtype: int64
3、统计共有几列存在缺失值
rides.isnull().any().sum()
结果:1
4、统计每行有多少缺失值
但是行数太多时,就没法显示结果
rides.isnull().sum(axis=1)
结果:
0 0
1 0
2 0
3 0
4 0
..
17374 0
17375 0
17376 0
17377 0
17378 0
Length: 17379, dtype: int64
5、统计共有多少行有缺失值
二、填充缺失值
1、直接删除
(1)删除有缺失值的行
rides = rides.dropna(axis=0, how='any')
本数据有17379行数据,17列数据,其中只有一列当中的41行有数据缺失
结果:只剩下17338行数据
[17338 rows x 17 columns]
(2)删除有缺失值的列
rides = rides.dropna(axis=1, how='any')
结果: 只剩下16列数据
[17379 rows x 16 columns]
(3)删除一行当中全部为空值的
rides = rides.dropna(axis=1, how='all')
(4)删除指定列atemp中缺失值
rides = rides.dropna(subset=['atemp'])
结果:只剩下17338行,有缺失的行全部删除
[17338 rows x 17 columns]
未完。。。。