ad

从《Python数据分析案例教程》中_领悟数据和Python的魅力_6.1 缺失值处理

admin 135 2023-10-25

【摘要】 本书摘自《Python数据分析案例教程》一书中第6章,第1节,由万念斌、肖伟东、叶丰标编著。

6.1 缺失值处理

数据丢失或缺失在现实生活中是常出现的问题,造成数据缺失的原因很多,有些信息暂 时是无法获取的,有些信息被遗漏,或因数据采集设备故障、存储介质故障、传输媒体故障等 人为因素造成,等等。在机器学习和数据挖掘等领域数据缺失导致数据质量差,在模型预测 的准确性方面面临严重的问题,因此缺失值处理在数据分析中非常重要。

数据缺失机制有完全随机缺失(missing completely at random,MCAR)、随机缺失 (missing at random,MAR)和非随机缺失(missing not at random,MNAR)。 完全随机缺失 指的是数据的缺失是完全随机的,不依赖于任何不完全变量或完全变量,不影响样本的无偏 性,如家庭地址缺失。随机缺失指的是数据的缺失不是完全随机的,即该类数据的缺失依赖 于其他完全变量,如财务数据缺失情况与企业的大小有关。非随机缺失指的是数据的缺失 与不完全变量自身的取值有关,如高收入人群不愿意提供家庭收入等。

缺失值处理的方式有:

(1)判断缺失值:Pandas 使用浮点值 NaN(Not a Number)表示浮点数和非浮点数组中 的缺失值,Python 内置 None 值也会被当作是缺失值。

(2)过滤缺失值:在出现缺失值的元素不显示、跳过或删除。

从《Python数据分析案例教程》中_领悟数据和Python的魅力_6.1 缺失值处理

(3)填充缺失值:用一些特殊值来填充缺失值。

6.1.1 判断缺失值

Pandas 采用isnull()和 notnull()函数来判断缺失值。 isnull()函数的作用是判断值是 否为空,若是,结果为 True,否则为 False,生成的是所有数据的 True/False 矩阵。对于庞 大的数据 DataFrame,很难一眼看出来哪个数据缺失, 一共有多少个缺失数据,缺失数据的 位置,因此可使用 DataFrame.isnull().any() 判断哪些列存在缺失值, DataFrame [DataFrame.isnull().values==True] 显示存在缺失值的行列,清楚地确定缺失值的位置。notnull()函数的作用与 isnull()相反。

【案例6-1】 判断缺失值。代码如下:

# encoding:utf-8

import pandas as pd

import numpy as np

def main():

#Series 的缺失值判断

s=pd.Series(['a','b',np.nan,'c',None])

printC'系列 s'.center(20,'-'),\n',s)

print('判断s 的缺失值'.center(20,'-'),'\n',s.isnull())

print('s存在缺失值的列.center(20,'一'),\n',s[s.isnull()])

# DataFrame的缺失值判断

data=pd.DataFrame([[1,np.nan,2],[3,4,None]])

print(数据帧 data'.center(20,'-'),\n',data)

print('data 的缺失值判断'.center(20,'一'),\n',data.isnull())

print('data 存在缺失值的列.center(20,'—'),\n',data.isnull().any()) printC'data 的缺失值和索引'.center(20,'一'),\n',data[data,isnull()])

print(显示存在缺失值的行列.center(20,'一'),`\n',data[data.isnull().values==True]) print('判断 data的第2列的缺失值'.center(20,'-'),`\n',data[1].isnull())

if name ==" main ":

main()

程序运行结果如下:

D:\anaconda\python.exe C:/Users/dell/PycharmProjects/My01/教学设计4--Pandas 缺失值 处理/判断缺失值.py

系列 s----

0 a

1 b

2 NaN

3 C

None

dtype: object

-----判断 s 的缺失值

0 Falsc

1 False

2 True

3 False

4 True

dtypc: bool

-s 存在缺失值的列------

2 NaN

4 None

dtype: object

------数据帧 data-------

0 1 2

0 1 NaN 2.0

1 3 4.0 NaN

-----data 的缺失值判断-----

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 18664393530@aliyun.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:《JAVA服务端研发知识图谱》_让你更懂Java后台研发_1.2.2 操作符
下一篇:《认知计算与深度学习》_基于物联网云平台的智能应用_1.2 社交媒体和移动云计算
相关文章

 发表评论

暂时没有评论,来抢沙发吧~

×