Pandas处理丢失的数据

#在我们导入或处理数据的时候, 有时会产生一些空的或者是 NaN 数据,如何处理丢失的数据有两种方法,分别是删除或者是填补NaN 数据。

##如果想直接去掉有 NaN 的行或列, 可以使用 dropna,举例说明,如下:首先建立一个6X4的矩阵,并且把两个位置置为NAN.
、、、
dates = pd.date_range(‘20180101’, periods=6)
df = pd.DataFrame(np.arange(24).reshape((6,4)),index=dates, columns=[‘A’,‘B’,‘C’,‘D’])
df.iloc[0,1] = np.nan
df.iloc[1,2] = np.nan
、、、

‘’’
A B C D
2018-01-01 0 NaN 2.0 3
2018-01-02 4 5.0 NaN 7
2018-01-03 8 9.0 10.0 11
2018-01-04 12 13.0 14.0 15
2018-01-05 16 17.0 18.0 19
2018-01-06 20 21.0 22.0 23
‘’’
(1) pd.dropna()
print(df.dropna( axis=0, how=‘any’ ) ) # ‘any’: 只要存在 NaN 就 drop 掉; ‘all’: 必须全部是 NaN 才 drop ; 0: 对行进行操作; 1: 对列进行操作
‘’’
A B C D
2018-01-03 8 9.0 10.0 11
2018-01-04 12 13.0 14.0 15
2018-01-05 16 17.0 18.0 19
2018-01-06 20 21.0 22.0 23
‘’’
(2) pd.fillna()
如果是将 NaN 的值用其他值代替, 比如代替成 0、平均数或者中位数等。
print(df.fillna(value=0))
‘’’
A B C D
2018-01-01 0 0.0 2.0 3
2018-01-02 4 5.0 0.0 7
2018-01-03 8 9.0 10.0 11
2018-01-04 12 13.0 14.0 15
2018-01-05 16 17.0 18.0 19
2018-01-06 20 21.0 22.0 23
‘’’
(3)如果处理的数据较多,难以判断数据是否有缺失或者NaN,则判断是否有缺失数据 NaN就尤为重要, 如果返回为 True ,则表示缺失数据。
pd.isnull()

print(df.isnull() )
‘’’
A B C D
2018-01-01 False True False False
2018-01-02 False False True False
2018-01-03 False False False False
2018-01-04 False False False False
2018-01-05 False False False False
2018-01-06 False False False False
‘’’
如果处理的数据非常庞大,上述检查方式的直观性就比较差了,所以对于检查来讲,我会经常使用如下方式:
print(np.any(df.isnull()) == True) #只要有丢失数据就返回True

‘’’
True
‘’’

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值