如何实现两个EXCEL表格相互查找并填充相应的内容--英雄云拓展知识分享
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)过滤缺失值:在出现缺失值的元素不显示、跳过或删除。
(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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~