pandas学习之df.fillna

    技术2022-07-10  100

    pandas学习之df.fillna

    df.fillna主要用来对缺失值进行填充,可以选择填充具体的数字,或者选择临近填充。

    官方文档

    DataFrame.fillna(self, value=None, method=None, axis=None, inplace=False, limit=None, downcast=None)

    解释

    构建实例: import numpy as np import pandas as pd df = pd.DataFrame([[np.nan,22,23,np.nan],[31,np.nan,12,34],[np.nan,np.nan,np.nan,23], [15,17,66,np.nan]],columns=list('ABCD')) df A B C D 0 NaN 22.0 23.0 NaN 1 31.0 NaN 12.0 34.0 2 NaN NaN NaN 23.0 3 15.0 17.0 66.0 NaN value:scalar,series,dict,dataframe 填充的值,可以是一个标量,或者字典等 df.fillna(value=1)#缺失值填充为1 A B C D 0 1.0 22.0 23.0 1.0 1 31.0 1.0 12.0 34.0 2 1.0 1.0 1.0 23.0 3 15.0 17.0 66.0 1.0 ------------------------------------------ df.fillna(value={'A':2,'B':3})# 传入一个字典,指定某列填充的具体值 A B C D 0 2.0 22.0 23.0 NaN 1 31.0 3.0 12.0 34.0 2 2.0 3.0 NaN 23.0 3 15.0 17.0 66.0 NaN method:{backfill,bfill,pad,ffill,none},default none 填充的方法,backfill和bfill代表填充后侧值,ffill和pad填充空值前侧值 df.fillna(method='ffill')#向前填充,注意此处默认参数axis=0,所以空值是填充上一行的数据,而不是前一列。 A B C D 0 NaN 22.0 23.0 NaN 1 31.0 22.0 12.0 34.0 2 31.0 22.0 12.0 23.0 3 15.0 17.0 66.0 23.0 axis: 控制行列的参数,用法和其他方法完全相同inplace: 是否将结果赋值给原变量,和其他方法里的用法相同limit:int 或None 向前或后填充的最大数量,必须是大于0的整数 如果指定了method参数,则连续空值值填充前int个 如果未指定method参数,则只填充所在轴上的前int空值 A B C D#原数据 0 NaN 22.0 23.0 NaN 1 31.0 NaN 12.0 34.0 2 NaN NaN NaN 23.0 3 15.0 17.0 66.0 NaN df.fillna(value=0,axis=1,limit=1)#在ABCD列上,每列只填充第一个空值 A B C D 0 0.0 22.0 23.0 0.0 1 31.0 0.0 12.0 34.0 2 NaN NaN 0.0 23.0 3 15.0 17.0 66.0 NaN

    加油

    Processed: 0.020, SQL: 9