我们最初的数据会因为各种各样的原因——信息无法获取,被遗漏——而产生缺失值。pandas使用NaN(Not a Number)来表示缺失值。处理缺失值的方式主要有两个——过滤缺失值或补全缺失值。
下表是处理缺失值的相关函数列表:
函数名 | 描述 |
---|---|
dropna | 根据每个标签的值是否是缺失数据来筛选轴标签 |
fillna | 用某些值填充缺失值 |
isnull | 返回表明哪些值是缺失值的布尔值 |
notnull | isnull的反函数 |
一、过滤缺失值
将存在遗漏信息属性值的对象(元组,记录)删除,从而得到一个完备的信息表。显而易见,这种方法会丢弃大量隐藏在这些对象中的信息,所以,在缺失数据占比较大的情况下最好不要用。在对象有多个属性缺失值、被删除的含缺失值的对象与初始数据集的数据量相比非常小的情况下非常有效。
dropna是过滤缺失值时非常有用的函数。默认情况下会删除包含缺失值的行。
data = pd.Series([1, np.nan, 3.5, np.nan, 9])
data.dropna()
data = pd.DataFrame([[1, 4, 5], [2, np.nan, np.nan],
[np.nan, np.nan, np.nan], [np.nan, 5, 6]])
data.dropna()