今天,我将与您分享有关Python缺乏价值的直接删除的知识。它也将解释它。如果您可以解决您现在面临的问题,请不要忘记注意此网站。让我们现在开始!
本文目录清单:
1.一篇文章了解数据清洁:缺少值,异常值和重复的处理2.如何删除Python DataFrame的缺失值3.缺乏价值处理作者:Song Tianlong
如果您需要重印,请联系Huazhang Technology
缺乏数据分为两种类型:一种是缺乏线路记录,这也称为数据记录的丢失;另一个是缺乏数据列值,也就是说,由于各种理由
环境中不同的数据存储和环境指数结果也不同。例如,数据库为null,python返回对象无,pandas或numpy是nan。
在少数情况下,某些缺失的值也将被空字符串替换,但是空字符串绝对与缺少的值不同。从对象的对象的角度来看,空字符串是实体,而实体是字符串类型;缺少的值实际上没有实体,也就是说,没有数据类型。
丢失的数据记录通常不会检索。在这里,我们将重点讨论数据列类型的处理思想缺乏价值。通常有4个想法。
1.丢弃
此方法简单明了,直接删除行记录(由整个行删除)或列字段(已删除),以减少丢失的数据记录对整体数据的影响。但是丢弃意味着将减少数据特性。该方法不应采用以下任何情况。
2.补充
相对丢弃,完成是一种更常用的缺失价值处理方法。通过某种方法来补充丢失的数据以形成完整的数据记录,这对于随后的数据处理,分析和建模至关重要。常用的互补方法如下。。
3.真值转换方法
在某些情况下,我们可能无法知道缺失值的分布定律,并且我们无法为缺失值使用上述任何互补方法;或者我们认为数据缺乏也是一项法律。处理,然后还有另一种缺失的值 - 价值处理 - 真实价值转换。
这个想法的基本要点是,我们承认缺少值的存在,并将缺少数据作为数据分发法的一部分。变量的实际值和缺失值用作参与后续数据处理和模型计算的输入维度。通常不参与操作,因此实际值转换需要由缺失值转换。
以用户的性别领域为例,许多数据库集无法弥补成员的性别,但他们不愿丢弃它。然后,我们将选择来自一个变量的男性,女性和未知变量的多个值的值分布。状态转换为多个变量的真实值分布状态。
然后,将这三个新字段用作输入维度来替换原始1字段以参与以下模型。
4.不处理
在数据预处理阶段期间,这也是一个想法,即不进行具有缺失值的数据记录处理。此想法主要取决于后期的数据分析和建模应用。许多模型具有用于缺失值的耐受性或灵活的处理方法,因此不能在预处理阶段进行处理。
可以自动处理缺失值的常见模型包括:KNN,决策树和随机森林,神经网络和简单的贝叶斯,DBSCAN(基于密度的空间群集带有噪声)。这些模型以缺少值的处理为:
在数据建模的数据中,有一个约会想法来降低维度,并且有一种方法可以直接选择维度中的特征。如果我们确定缺少值的字段的效果(无论值多少值通过某种方法缺少字段),然后模型的效果很小,那么我们根本不需要处理丢失的值。
因此,在后期的田地或形成特征的重要性判断也是决定该领域是否缺乏田地价值的重要参考因素之一。
缺少值的处理思想是通过某种方法找到缺失的值,然后分析整体样本中缺失值的分布比例,以及丢失值是否具有明显的不规则分布特征,然后考虑是否是否考虑模型可以使用以下内容来使用。要满足缺失值的自动处理,最后决定使用了哪种损失处理方法。
选择处理方法时,请注意输入的时间,能量和输出值。毕竟,处理只是整个数据工作的冰山一角。
在数据集合期间,可以在集合结束的每个字段上设置一个默认值。以MySQL为例,在设计数据库表时,您可以按默认值指定每个字段的默认值。该值必须是一个常数。
在这种情况下,如果在原始数据收集过程中未收集数据,则该字段的值应为无效。尽管设置库表时设置了默认值,但它会导致“缺失值”看起来非常正常,但是它仍然缺乏本质。
异常数据是数据分布的正常状态。特定分布区域或范围中的数据通常定义为异常或“噪声”。数据的“噪声”的原因很多,例如业务运营,数据收集问题,数据同步问题等。
在处理异常数据之前,您需要区分哪些实际数据异常。从数据异常状态,有两种类型:
在大多数数据挖掘或数据工作中,在数据的处理过程中被认为是消除了异常值,以避免其对采矿的总体数据评估和分析的影响。但是在以下情况下,我们不需要放弃异常价值。
1.通常反映业务运营的结果
这种情况是由业务部门的特定行动引起的异常数据分布。如果废弃的异常值,它将无法正确反馈业务结果。
例如:该公司的产品在正常情况下约为1,000台。就昨天举行的优惠促销活动,总销售额达到10,000台,由于返回库存库存不足,今天的销量下降到100个。案例,10,000和100个单位正确反映了业务运营的结果,而不是数据异常情况。
2.异常检测模型
分析并为整体样本中的异常数据分析和挖掘异常检测模型,以找到异常的病例和法律。该数据应用程序围绕异常值展开,因此不能丢弃异常值。
异常检测模型通常用于客户异常识别,信用卡欺诈,贷款批准识别,药物突变识别,恶劣的天气预测,网络入侵测试,交通欺骗检测等。在这种情况下,异常数据本身是目标数据,以及目标数据和如果处理的关键信息将丢失。
3.具有异常值的数据建模
如果数据算法和模型对异常值不敏感,那么即使未处理异常值,也不会对模型本身产生负面影响。例如,在决策树中,可以使用异常值本身作为拆分节点。
数据集的重复值包括以下两种情况:
重复价值处理的主要方法是保留可以显示功能的特征的唯一数据记录。但是,在遇到以下情况时,请仔细执行数据(不建议)重做。
1.重复记录用于分析进化定律
以更改维表为例。例如,在商品类别的维度表中,与每种产品相对应的同一类别的值应该是唯一的。例如,Apple iPhone7属于个人电子消费品,因此所有产品都可以分配到唯一的类别属性值中。但是,当商品类别或升级的所有价值(在大多数情况下是公司开发)时,原始产品可以分配类别中的不同值。此更改如下表所示。
目前,当我们使用Full Join与数据中的交叉构造时间匹配类别时,我们会发现Apple iPhone7将同时匹配个人电子消费品和手机数字的两个记录。情况,有必要应对特定的业务需求。
2.重复记录样品不平衡处理
在进行分类数据建模工作时,样本不平衡是影响分类模型效果的关键因素之一。解决分类方法的一种方法是使次要样本类别简单地采样。通过随机采样,简单复制样品的策略用于增加少量样品。
在此处理方法之后,同一记录的多个数据还将在数据记录中生成相同的记录。在此点,我们无法对重复值进行重型操作。
3.重复记录用于检测业务规则问题
对于主要分析的数据集,重复记录不会直接影响实际操作。毕竟,数据集主要用于分析。
但是,对于交易 - 类型数据,重复数据可能意味着主要运营规则的问题,尤其是当这些重复出现在与商业运营中的货币有关的业务方案中,例如:重复订单,重复性补给,重复的单人申请项目,重复性销售申请, ETC。
这些重复的数据记录通常是由数据收集,存储,验证和审查机制的不完整引起的,这些机制将直接反映在前台的生产和操作系统中。以重复订单为例:
因此,在早期数据收集和存储时必须通过某些机制来解决和避免这些问题。如果确实出现了此类问题,数据工作人员或运营商可以根据这些重复发现规则漏洞,并与相关部门合作以最大程度地减少操作风险由此带来。
本文摘自“ Python数据分析和数据操作”(第二版),该文章已由发布者授权。
1.从Sklearn.Preprocessing Import Imputer导入所需库。ImportPandas作为PD,将Numpy作为NP导入。
2.生成缺失的data.data = pdataframe({'name':['kite','lily','hanmei','hanmei','danny','bob'],'英语':[92,78,np.nan,23,82],“数学”:[69,87,91,np.nan,90],'centern':[np.nan,78,96,np.nan,75]}),print(data)。
3.检查缺失的值.data.isnull()#view所有缺少的值,data.isnull()。任何()#get包含缺失值的列,data.isnull()。all()#get所有na列。
4.删除缺失的值。此处理方法是更多信息。data2= data.dropna().print(data2)可以看出,删除后,只剩下两行数据。
5.使用Sklearn替换缺失的值。当缺失值是数值数据时,可以更换平均值。
6.使用pandas替换缺陷。data.fillna(0)#缺失值被0代替。
扩展信息
执行Python后,PY文件中的源代码将被编译到Python的字节代码(字节码)中,然后执行Python虚拟机(Python Virtual Machine)执行这些编译的字节代码。与Java一致。
但是,Python虚拟机不同于Java或.NET的虚拟机。Python的虚拟机是一台更高级的虚拟机。
从通常的意义上讲,这里的高级级别并不是说Python的虚拟机比Java或.Net更强大。
与Java或Net相比,Python的虚拟机距离真实机器更远。或者可以说Python的虚拟机是一种具有更高抽象水平的虚拟机。
c python编制的字节码文件通常是pyc格式。此外,python也可以在交互式模式下运行,例如主流操作系统unix/linux,mac和windows可以直接在命令模式下直接运行Python Interactive环境可以发出直接操作说明以实现交互式操作。
Python的设计目标之一是使代码高度可读。它使用标点符号符号和英语单词,这些符号和英语单词通常用其他语言使用,以使代码看起来整洁且美丽。
它不需要像C和Pascal等其他静态语言那样反复编写陈述,也不需要像他们的语法那样经常出现特殊情况和事故。
Python开发人员打算制定违反缩进规则的程序,不能汇编以迫使程序员养成良好的编程习惯。
python语言的开始和退出使用句子块的起点和退出(外部规则),而不是使用括号或某些关键字。插入短语块的开头,减少凹痕表示退出的退出。句子块。扩展已成为语法的一部分。
缺失数据
1统计和缺失值损失的删除
1.1缺失信息的统计数据
缺少的数据可以使用ISNA或ISNULL(两个函数之间没有差异)来查看每个单元格是否丢失,并且可以通过与总和组合来计算每列缺失值的比例。
如果您想看到缺乏或非错过的线,可以在布尔索引上使用isna或notna。例如,检查缺乏高度:
如果您想同时转到几列,请搜索所有缺失或至少一个缺乏的组合,可以使用ISNA,NOTNA和ALL的组合。高度,体重和过渡分别被检索。
1.2删除丢失的信息
在数据处理中,通常会根据缺失值的大小,比率或其他特征来删除它。PANDA提供了DropNA函数以操作。
dropNA的主要参数是轴方向轴(默认,即删除行),如何删除以及非错过数字阈值阈值的数量(非拨入值未达到未达到相应的维度该数量将被删除),替代元素子集子集。其中,有两个参数:任何参数。
2缺失值的填充和插值
2.1使用Fillna填充
填充中有三个参数:值,方法,限制。在它们中,可以充电,可以是标量或索引字典映射;方法是一种填充方法,它使用先前的元素填充ffill并使用后续元素填充Bfill。最大填充。
2.2插入功能
在插值功能的文档描述中,列出了许多插值方法,包括大量的Scipy方法。由于许多插值方法涉及相对复杂的数学知识,此处仅讨论了三个常见和简单的案例,即线性插值,最近的邻居插值和索引插值。
对于插值,除了插值方法(默认线性线性插值)外,还有两个与填充的常见参数,一个是控制方向的限制,另一个是控制连续丢失的插值最大数量的极限。其中,极限插值的方向是默认的,这与Fillna方法中的FFILL相似。
关于多项式和样条插值的预防措施
如果在间隔中使用了多项式插值方法,则内部呼叫为scipy.interpaly.interp1d(*,*,*,kint = order)。此函数称为make_interp_spline方法,因此它实际上是示例插值而不是numpy.polyfit多项式配件。当使用样条方法时,PANDAS调用scipy.interpaly.univariatespline而不是普通的样品插值。此部分的文档描述相对混乱,并且该参数的设计也不是不合理的。使用这两种类型的插值方法时,用户必须根据其实际需求仔细选择适当的插值方法。
3个无效类型
3.1缺乏分数和缺陷
python中缺乏价值由无代表,除了该元素等于除本身以外的任何其他要素:
在numpy中使用np.nan表示值的损失。除了不等于任何其他元素外,此元素还通过其自己的比较结果返回false
值得注意的是,尽管在比较缺乏序列或表的元素的比较时,NP.NAN的相应位置会返回false,但是当将Equals函数用于两个表或两个相同性测试的序列时,将被使用,并将检查。
在时间顺序的对象中,熊猫使用pd.nat来指代价值损失,其作用与np.nan一致
那么,为什么要介绍pd.nat来表示缺乏时间对象?np.nan的存储的问题是什么?您可以在pandas中看到对象类型的对象,而对象是混合的对象类型。如果同时将多种类型的元素串联存储,则其类型将成为对象对象
NAT问题的根本原因来自NP.NAN本身是一种浮点 - 点类型,如果浮点点和时间类型混合了存储,如果您不设计新的内置 - 缺失类型来处理它,则将成为模糊的对象类型。这显然不想看到。
同时,由于缺乏一系列整数,由于np.nan的浮动 - 点性质,该类型将被转换为float64。如果布尔序列缺乏,那么它的类型将转向对象,并且会变成对象和bool
因此,在输入1.0.0版本之后,Pandas试图设计一种新型的缺乏PD.NA和三个无效序列来应对这些缺陷,它们是INT,Boolean和String。
3.2无效的类型属性
从字面上看,无效的是空的,这意味着序列类型不受缺乏价值的影响。例如,在上述三种可确定的类型中,存储缺乏值将变成pandas build build build -in -in pd.na。
在INT的顺序中,返回的结果将尽可能成为无效的类型
对于布尔类型序列,布尔序列的行为有两个主要区别:
第一个点是不能在索引中选择缺乏布尔列表,而布尔值将视为缺失值为false
第二点是,当执行逻辑操作时,BOOL类型始终是false,总是返回到缺乏,而Boolean将根据逻辑操作是否可以确定唯一结果返回相应的值。那么唯一的结果是什么以一个简单的示例:是否在true |中缺少该值pd.na,它一定会返回真实;结果为false |pd.na将根据值的不同值改变。目前,PD.NA;false pd。无需记住为什么在na中缺少该值,它势必返回false。
3.3计算和分组丢失的数据
当呼叫函数是总和时,概率使用添加和乘法,缺乏数据等于被视为0和1,即,原始计算结果不会更改
使用累积函数时,它将自动跳过丢失缺失值的位置:
当执行单个标量操作时,除了NP.NAN ** 0和1 ** np.nan的值外,所有操作结果都缺失(PD.NA的行为与此相一致),这是一致的。和NP.NAN在比较操作时必须返回false,PD.NA返回PD.NA
此外,应该注意的是,尽管差异的两个函数,pct_change是相似的,但是缺乏处理是不同的,所有参与计算缺乏的部分都将丢失,而后者缺乏价值位置将会设置为0%更改。
对于某些功能,可以将缺乏视为类别。例如,在groupby,get_dummies中,可以设置相应的参数以增加缺失的类别:
4练习
4.1 EX1:检查缺失值和类别之间的相关性
.4.2 EX2:使用回归模型解决分类问题
引入直接删除和Python缺少价值的引入已经结束。我想知道您是否从中找到了所需的信息?如果您想进一步了解此信息,请记住要收集对该网站的关注。