pandas数据缺失值处理

pandas数据缺失值处理

import pandas as pd
from numpy import NaN
import numpy as np

df = pd.DataFrame([[1,None,NaN],[1,1,NaN],[NaN,None,NaN],[0,None,NaN]])
print(df,"\n")
#判断是否是空值,缺失值(None空值,NaN缺失值),在是的位置上打上True,否则打上False
print(df.isnull(),"\n")
# axis默认值为0表示行,1为列,how参数值为any与all,all表示删除全部有NaN的行,
# thresh参数为整数类型表示删除条件,如3,表示一行(列)至少有三个非NaN值才会被保留
print(df.dropna(axis = 0, how = 'all'),"\n")    
print(df.dropna(axis = 1, thresh = 2),"\n")   
print(df.dropna(axis = 0, thresh = 2),"\n") 

# fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None, **kwargs)
# method: {‘backfill’, ‘bfill’, ‘pad’, ‘ffill’, None}, default None。定义了填充空值的方法, 
# pad / ffill表示用前面行/列的值,填充当前行/列的空值, 
# backfill / bfill表示用后面行/列的值,填充当前行/列的空值。
# value表示值,axis表示行或列,inplace:是否原地替换。布尔值,默认为False,即是否更改原数据框数据

#用0填充所以的缺失值
b1 = df.fillna(0)
print(b1)

#用前一行数据填充缺失值
b2 = df.fillna(method="ffill")
print(b2)

#用后一行数据填充缺失值
b3 = df.fillna(method="bfill")
print(b3)

#用一列的均值, 最大值,最小值,众数等等替换数据填充缺失值
print(df.columns)
for _ in list(df.columns[df.isnull().sum() > 0]):
    #mean_val = df[_].mean() # 计算缺失值这列的均值
    # max_val = df[_].max() # 计算缺失值这列的最大值
    # max_val = df[_].min() # 计算缺失值这列的最小值
    # mode_val = df[_].mode() # 计算缺失值这列的众数
    df[_].fillna(mean_val, inplace=True)
print(df)

# 指定列处理
# df.fillna(value = {"列名1":replace_values1,"列名2":replace_values2,.......
# "列名n":replace_valuesn})

关注公众号FF工作室,代做数据分析数学建模,爬虫,R语言与python,hadoop大数据系列软件安装等等,定期有Demo看哦
FF工作室

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值