### 目录 ###
[1]Series.isna() 检测缺失值。
[2]Series.notna() 检测现有(非缺失)值。
[3]Series.dropna() 返回删除了缺失值的新Series。
[4]Series.fillna() 使用指定的方法填充NA / NaN值。
### 内容 ###
[1]Series.isna() 检测缺失值。
>>> ser = pd.Series([5, 6, np.NaN])
>>> ser.isna()
0 False
1 False
2 True
dtype: bool
[2]Series.notna() 检测现有(非缺失)值。
>>> ser = pd.Series([5, 6, np.NaN])
>>> ser.notna()
0 True
1 True
2 False
dtype: bool
>>> s1=ser[ser.notna()]
>>> s1
0 5.0
1 6.0
[3]Series.dropna() 返回删除了缺失值的新Series。
1.语法参数
Series.dropna(axis = 0,inplace = False)
axis : {0或'index'},默认为0 , 只有一个轴可以从中删除值。
inplace : bool,默认为False , 如果为True,则执行就地操作并返回None。
例子
>>> ser = pd.Series([1., 2., np.nan])
>>> ser
0 1.0
1 2.0
2 NaN
dtype: float64
#从系列中删除NA值。
>>> ser.dropna()
0 1.0
1 2.0
dtype: float64
#使系列保持同一变量中的有效条目。
>>> ser.dropna(inplace=True)
>>> ser
0 1.0
1 2.0
dtype: float64
#空字符串不被视为NA值。None被认为是NA值。
>>> ser = pd.Series([np.NaN, 2, pd.NaT, '', None, 'I stay'])
>>> ser
0 NaN
1 2
2 NaT
3
4 None
5 I stay
dtype: object
>>> ser.dropna()
1 2
3
5 I stay
dtype: object
[4]Series.fillna() 使用指定的方法填充NA / NaN值。
1.语法参数
Series.fillna(value = None,method = None,axis = None,inplace = False,limit = None,downcast = None)
value:标量,字典,系列或DataFrame
method : {'backfill','bfill','pad','ffill',None},默认None
axis : {0 or ‘index’}
inplace : boolean, default False , If True, fill in place.
limit : int,默认无 ,注意若指定了method,则这是向前/向后填充的连续NaN值的最大数量。
2.例子
>>> df = pd.DataFrame([[np.nan, 2, np.nan, 0],
... [3, 4, np.nan, 1],
... [np.nan, np.nan, np.nan, 5],
... [np.nan, 3, np.nan, 4]],
... columns=list('ABCD'))
>>> df
A B C D
0 NaN 2.0 NaN 0
1 3.0 4.0 NaN 1
2 NaN NaN NaN 5
3 NaN 3.0 NaN 4
#用0替换所有NaN元素。
>>> df.fillna(0)
A B C D
0 0.0 2.0 0.0 0
1 3.0 4.0 0.0 1
2 0.0 0.0 0.0 5
3 0.0 3.0 0.0 4
#我们还可以向前或向后传播非空值。
>>> df.fillna(method='ffill')
A B C D
0 NaN 2.0 NaN 0
1 3.0 4.0 NaN 1
2 3.0 4.0 NaN 5
3 3.0 3.0 NaN 4
#将“A”,“B”,“C”和“D”列中的所有NaN元素分别替换为0,1,2和3。
>>> values = {'A': 0, 'B': 1, 'C': 2, 'D': 3}
>>> df.fillna(value=values)
A B C D
0 0.0 2.0 2.0 0
1 3.0 4.0 2.0 1
2 0.0 1.0 2.0 5
3 0.0 3.0 2.0 4
#只替换第一个NaN元素。
>>> df.fillna(value=values, limit=1)
A B C D
0 0.0 2.0 2.0 0
1 3.0 4.0 NaN 1
2 NaN 1.0 NaN 5
3 NaN 3.0 NaN 4