数据中不可避免会出现数据的缺失,pandas提供了几种简单的方式进行缺失值的处理。
处理方法:
dropna方法:默认原始对象不会被修改,dropna后会生成新的对象
对Series会丢弃掉NA值。
而对于DataFrame则会默认丢弃掉含有NaN的行,如果要丢弃含NaN的列,则指定axis=1
若传入how='all',则会丢弃全是NaN的行,指定axis=1时,则丢弃列
frame
Out[16]:
a b c d
st1 1 2 3.0 4.0
st2 5 6 NaN 8.0
st3 9 10 NaN NaN
frame3
Out[18]:
a b c d e
st1 2.0 4.0 6.0 8.0 NaN
st2 10.0 12.0 NaN 16.0 NaN
st3 18.0 20.0 NaN NaN NaN
st4 NaN NaN NaN NaN NaN
frame.dropna()
Out[19]:
a b c d
st1 1 2 3.0 4.0
frame.dropna(axis=1)
Out[20]:
a b
st1 1 2
st2 5 6
st3 9 10
frame3.dropna(how='all')
Out[21]:
a b c d e
st1 2.0 4.0 6.0 8.0 NaN
st2 10.0 12.0 NaN 16.0 NaN
st3 18.0 20.0 NaN NaN NaN
frame3.dropna(how='all',axis=1)
Out[22]:
a b c d
st1 2.0 4.0 6.0 8.0
st2 10.0 12.0 NaN 16.0
st3 18.0 20.0 NaN NaN
st4 NaN NaN NaN NaN
fillna方法:默认原始对象不会被修改,填充后生成新的对象
指定填充内容填充NaN值
参数说明:
value:NaN值填充的对象,可以为单个字符,或字典,字典时,其字典索引需与columns索引相同
method:像reindex填充方法相同,默认为ffill。method='ffill'或'pad',即前向填充,method='bfill'或'backfill',即后向填充
axis:指定填充的轴方向,即配合method方法使用
inplace:默认为False,不修改原对象,更改为True后,可修改原对象
limit:填充长度限制,即配合method方法使用