[Python3] Pandas v1.0 —— (二) 处理缺失值


[ Pandas version: 1.0.1 ]


四、处理缺失值

(一)选择处理缺失值的方法

在数据表或 DataFrame 中有很多识别缺失值的方法。一般情况下可以分为两种:

  • 一种方法是通过一个覆盖全局的掩码表示缺失值
  • 另一种方法是用一个标签值表示缺失值

(二)Pandas的缺失值

Pandas用标签方法表示缺失值,包括两种Python原有的缺失值:浮点数据类型的 NaN 值,以及Python的 None 对象。

1. None: Python对象类型的缺失值

Pandas可以使用的第一种缺失值标签是 None,它是Python单体对象,经常在代码中表示缺失值。

由于 None 是一个Python对象,所以不能作为任何 NumPy/Pandas 数组类型的缺失值,只能用于’object’数组类型(由Python对象构成的数组)

import numpy as np
import pandas as pd

vals1 = np.array([1, None, 3, 4])
vals1 			#输出:array([1, None, 3, 4], dtype=object)

# dtype=object表示NumPy认为这个数组是Python对象构成的。
# 虽然这种类型在某些情景中很有用,对数据的任何操作最终都会在Python层面完成。
# 但是在进行常见的快速操作时,这种类型比其他与原生类型数组要消耗更多的资源。

使用Python对象构成的数组意味着如果对一个包含 None 的数组进行累计操作(如sum(), min())会出现类型错误 TypeError

因此,在Python中没有定义整数与 None 之间的运算。

2. NaN: 数值类型的缺失值

另一种缺失值的标签是 NaN(全称 Not a Number,不是一个数字),是一种按照IEEE浮点数标准设计、在任何系统中都兼容的特殊浮点数。

vals2 = np.array([1, np.nan, 3, 4])
vals2 			#输出:array([ 1., nan,  3.,  4.])
vals2.dtype 	#输出:dtype('float64')

# Numpy会为这个数组选择一个原生浮点类型,意味着这个数组会被编译成C代码从而实现快速操作

NaN 会将与它接触过的数据同化,无论和 NaN 进行何种操作,最终结果都是NaN。

1 + np.nan 		#输出:nan
0 * np.nan 		#输出:nan

# 虽然这些累计操作的结果定义时合理的(无异常),但是并非总是有效的:
vals2.sum(), vals2.min(), va
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值