缺失值填充

  • 1.找到缺失值
  • 2.计算缺失值的数量
  • 3.处理缺失值
  • 3.1:**df.dropna()**:直接删除行列
  • 3.2:df.fillna()填充缺失值
  • 3.3:KNN填充
  • 4.查看数据集的末尾
  • 1.找到缺失值

  • 导入数据集
  • df=pd.read_csv("nba.csv")
    df.head(10)
    
  • 替换异常值(数据集中异常值为“-”)
  • 把数据集中的异常值用“NaN”替换

    # 将空值形式的缺失值转换成可识别的类型
    data = data.replace('-', np.NaN)
    

    2.计算缺失值的数量

    用# isnull() 函数,确认各列是否有缺失值1.

    null_all = df.isnull().sum()
    print(null_all)
    

    1

    .sum();表示可以显示各个列的缺失值数量。

    null_all = df.isnull.any(axis=1)#表示那些行具有缺失值,
    

    .any()表示只要按行或列计算,有缺失值就算入
    .all()表示所在行或列全为缺失值才计入
    .sum()表示计算列缺失值时,一列有多个缺失值,同理,计算行缺失,计算有多少个行

    3.处理缺失值

    3.1:df.dropna():直接删除行列

    df表示数据集的名称

  • dropna(axis=0, how=‘any’, thresh=None, subset=None, inplace=False)
    括号内上述参数都是函数默认。
  • axis=0:表示对行进行删除操作,axis=1:对列删除进行操作
    how=‘any’:表示维度 存在“缺失值”就删除相应行/列操作;how=‘all’:进行相关行或列删除操作时,只有所有维度缺失才删除
    thresh=None:等于几表示有几个缺失值存在才会删除所在的行或列。
    inplace=False:表示对原来的数据集不进行操作,True时表示对原来的数据集也进行操作。

    3.2:df.fillna()填充缺失值

  • fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None)
  • axis : {0 or ‘index’, 1 or ‘columns’}

    method : {‘backfill’, ‘bfill’, ‘pad’, ‘ffill’, None}
    pad’, ‘ffill:将前面的值填充于后面位置。
    backfill’, 'bfill:表示将后面的值填充于前面位置。

    data.fillna(data.mean())#平均值填充
    data.fillna(data.median())#中位数填充
    

    3.3:KNN填充

    from sklearn.impute import KNNImputer
    imputer = KNNImputer(n_neighbors=4)#邻居样本求平均数
    df1=imputer.fit_transform(df)
    
    

    4.查看数据集的末尾

    df.tail(10)
    查看末尾10行

    来源:开始学习的同学

    物联沃分享整理
    物联沃-IOTWORD物联网 » python缺失值填充方法

    发表评论