采用pandas中的fillna()方法
(pandas.DataFrame.fillna)
1.函数讲解:
------------------------------------------------------------------------------------
fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None)
------------------------------------------------------------------------------------
**参数解释:**
value:填充进去的值{数字/字符/dict/Series/DataFrame}
method:填充空值的方法{'backfill', 'bfill', 'pad', 'ffill', None}, default None
pad / ffill:向下填充。
backfill / bfill:向上填充。
axis:轴{0 /‘index’, 1 /‘columns’}
0或'index',沿行;
1或'columns',沿列。
inplace:是否原地替换。bool, default False
默认为False。
True:在原DataFrame上进行操作,返回值为None。
limit:int, default None。
method被指定后:对于连续的空值,这段连续区域最多填充前 limit 个空值
(如果存在多段连续区域,每段最多填充前 limit 个空值)。
method未被指定:在该axis下最多填充前 limit 个空值
(不论空值连续区间是否间断)
downcast:dict, default is None
2.具体示范:
初始的表信息如下:
填充数字:
data.fillna(0)
填充字符:
data.fillna('normal')
填充字典:
data.fillna({"A": 'na', "B": 'nb', "C": 'nc', "D": 'nd'})
向下填充:
data.fillna(method="ffill")
向上填充:
data.fillna(method="bfill")
前一行填充后一行:
data.fillna(method="ffill",axis=0)
后一行填充前一行:
data.fillna(method="bfill",axis=0)
前一列填充后一列:
data.fillna(method="ffill",axis=1)
后一列填充前一列:
data.fillna(method="bfill",axis=1)
限制填充个数举例:
(1)method指定时:
data.fillna(method="ffill",limit=1)
(2)method未指定:
data.fillna(value=0,limit=1)