import numpy as np
import pandas as pd
from pandas import Series,DataFrame
有两种丢失数据:
None
np.nan(NaN)
1. None
None是Python自带的,其类型为python object。因此,None不能参与到任何计算中。
a=np.array([1,None,3,4])
a.sum() #None不能参与到计算中,会报错
2. np.nan(NaN)
np.nan是浮点类型,能参与到计算中。但计算的结果总是NaN。
a=np.array([1,np.nan,3,4])
a.sum()
nan
np.nansum(a)
8.0
3. pandas中的None与NaN
1) pandas中None与np.nan都视作np.nan
2) pandas中None与np.nan的操作
isnull()
notnull()
dropna(): 过滤丢失数据
fillna(): 填充丢失数据
(1)判断函数
isnull()
notnull()
(2) 过滤函数
dropna()
删除所有的空值
(3) 填充函数
fillna()
data.fillna(0) #空值用0来填充
data.fillna(method='ffill') #空值用前一个值来填充
data.fillna(method='bfill') #空值用后一个值来进行填充
对于DataFrame来说,还要选择填充的轴axis。记住,对于DataFrame来说:
axis=0:列
axis=1:行
df.fillna(method='ffill',axis=0) #按照该列的前一列的值来进行填充
fillna(method='ffill',axis=1) #按照该行的前一个值来进行填充