卓越网的企业类型和网站种类,php英文网站源码,注册安全工程师条件,上海网站制作官网原标题#xff1a;Pandas之缺失值处理本文作者#xff1a;杨长青本文编辑#xff1a;周聪聪技术总编#xff1a;张学人好消息#xff01;#xff01;#xff01;爬虫俱乐部将于2019年5月2日至4日在武汉举行Stata编程技术五一训练营#xff0c;此次采用理论与案例相结合…原标题Pandas之缺失值处理本文作者杨长青本文编辑周聪聪技术总编张学人好消息爬虫俱乐部将于2019年5月2日至4日在武汉举行Stata编程技术五一训练营此次采用理论与案例相结合的方式旨在帮助大家熟悉Stata数据分析技巧能够通过编程读取不同类型的数据源、实现复杂数据合并、清洗的程序化并且熟悉Stata核心的爬虫技术。当我们用python进行数据处理时会遇到很多缺失值缺失值一般是由于我们所处理的数据本身的特性、当初录入的失误或者其它原因导致的比如读入数据的空值、做0/0等计算时这些数据都被处理成缺失值。对于缺失值我们的处理或者直接删除或者进行填补今天我们来介绍几个基础的缺失值处理函数dropna:删除缺失值isna、notna判断缺失值fillna、interpolate填补缺失值接下来我们结合具体的例子来详细介绍上述函数用法。在DataFrame中缺失值的标签一般为NAN(not a number)。可以沿用numpy中np.nan定义缺失值。我们构造一个包含缺失值的简单例子importnumpy asnpimportpandas aspddict1{make:[AMC Concord, np.nan,AMC Spirit,np.nan,Buick Electra ,AMC Pacer],price:[4099,4749,np.nan,7824,np.nan,2154],rep78:[3,4,np.nan,5,np.nan,5]} #通过np.nan生成缺失值autopd.DataFrame(dict1)auto #展示auto数据如下一、删除缺失值dropna的语法介绍dataFrame.dropna(axis 0how anythresh Nonesubset Noneinplace False )axis确定删除缺失值的行或列。axis0删除包含缺失值的行。axis1删除包含缺失值的列。how删除方式。how’any’删除包含缺失值的行或列。how’all’只有行或列都为缺失值才会被删除。thresh设置需要的非缺失值。当thresh2保存包含至少有两个非缺失值的行或列。subset沿着其他轴考虑的标签。假设删除行可以指定subset[‘make’]删除缺失make变量数据的行。inplace是否对原数据集进行处理替换。inplaceTrue替换修改原对象。对于上面的例子我们想要删除price和rep78为空的观测只需auto.dropna(subset[make,rep78])最终输出如下:二、判断缺失值isna用来判断DataFrame元素是否大小写返回相同大小的对象如果是缺失值则为True否则为False。而notna刚好相反如果是缺失值则为False否则为True。下面两图是auto数据集使用isna和notna判断的结果在数据处理的过程中经常是要对各个特征下数据缺失的多少进行一个判断对于缺失数较多的特征我们一般不会使用。isna很方便我们对缺失值进行统计并按缺失值的比重排列。程序如下na_count auto.isnull().sum().sort_values(ascendingFalse) #对bool数据进行累加并从大到小排列na_rate na_count / len(auto) #计算比率na_data pd.concat([na_count,na_rate],axis1,keys[count,ratio])na_data输出如下三、填补缺失值fillna的主要语法如下DataFrame.fillna(value Nonemethod None inplace Falselimit None)value用于指定用何值填充缺失值。可以是一个标量如value0用0填补所有缺失值。可以是一个字典键为需要填充的列名值为需要填充的内容。method指定填充的方式。methodffill用前面的补齐后面的缺失值。methodbfill 用下一个非缺失值填充该缺失值。inplace如上定义。limit在指定method时控制向前或向后填充缺失值的最大数量。对于上述例子我们将price和rep78的缺失值分别用均值和中位数进行替换value{price:auto.price.mean(),rep78:auto.rep78.median() } #分别计算均值个中位数auto.fillna(value)替换之后如下所示同时还可以使用插值法对缺失值进行填补通过interpolate函数完成默认为线性插值即methodlinear。除此之外还有‘linear’、‘time’等插值方法可供选择。这里我们就不再详细介绍。以上介绍如何通过 Pandas 处理数据集中的缺失值包括识别、删除、填补。如果大家在学习使用python的过程中有什么问题可以通过邮件与我们进行联系。关于我们微信公众号“爬虫俱乐部”分享实用的stata命令欢迎转载、打赏。爬虫俱乐部是由李春涛教授领导下的研究生及本科生组成的大数据分析和数据挖掘团队。投稿要求1)必须原创禁止抄袭2)必须准确详细有例子有截图注意事项1)所有投稿都会经过本公众号运营团队成员的审核审核通过才可录用一经录用会在该推文里为作者署名并有赏金分成。2)邮件请注明投稿邮件名称为“投稿推文名称”。3)应广大读者要求现开通有偿问答服务如果大家遇到关于stata分析数据的问题可以在公众号中提出只需支付少量赏金我们会在后期的推文里给予解答。返回搜狐查看更多责任编辑