空值和缺失值的处理dropna方法填充空值缺失值_第1页
空值和缺失值的处理dropna方法填充空值缺失值_第2页
空值和缺失值的处理dropna方法填充空值缺失值_第3页
空值和缺失值的处理dropna方法填充空值缺失值_第4页
空值和缺失值的处理dropna方法填充空值缺失值_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

空值和缺失值的处理

dropna()方法、填充空值/缺失值教师:亢华爱北京信息职业技术学院商务数据分析与应用专业教学资源库目录Contents填充空值/缺失值dropna()方法1PARTdropna()方法dropna()方法作用是删除含有空值或缺失值的行或列dropna(axis=0,how=1any*,thresh=None,subset=None,inplace=False)dropna()方法语法格式取值可以为:any:默认值。如果存在NaN值,则删除该行或该列。all:如果所有值都是NaN值,则删除该行或该列。how:确定过滤的标准。取值可以为:0或index:删除包含缺失值的行,默认为0。1或columns:删除包含缺失值的列。axis:确定过滤行或列。若传入了2,则是要求该行或该列至少有两个非NaN值时将其保留thresh:表示有效数据量的最小要求。201712435dropna()方法表示在特定的子集中寻找NaN值。subsetinplace:表示是否在原数据上操作。如果设为True,则表示直接修改原数据;如果设为False,则表示修改原数据的副本,返回新的数据。书籍信息表格类别书名作者在索引为0的一行中书名为NaN,表明该位置的数据是缺失值索引为1的一行中作者为None,表明该位置的数据是空值删除空值/缺失值前后的表格dropna()方法接下来,通过一个示例来演示如何使用dropna()方法删除空值和缺失值,具体代码如下。In[3]:importpandasaspdimportnumpyasnpdf_obj=pd.DataFrame({"类别":['小说','散文随笔','青春文学','传记'],"书名":[np.nan,,'《皮囊》','《旅程结束时》','《老舍自传》'],"作者":["老舍",None,"张其鑫","老舍"]})df_objOut[3]:类别 书名 作者0 小说NaN 老舍1散文随笔 《皮囊》None2青春文学《旅程结束时》 张其鑫3传记 《老舍自传》 老舍Out[4]: 类别 书名 作者2青春文学《旅程结束时》张其鑫3传记《老舍自传》老舍dropna()方法首先创建一个含有控制和缺失值的DateFrame对再让该对象调用dropna()方法将数据中的空值或缺失值进行过滤删除,只保留完整的数据从输出结果看出,所有包含空值或缺失值的行已经被删除了代码中dropna()方法2PART填充空值/缺失值填充空值/缺失值填充缺失值和空值的方式人工填写特殊值填写热卡填充Pandas中的fillna()方法可以实现填充空值或缺失值,其语法格式如下fillna(value=None,method=None,axis=None,inplace=False,limit=None,downcast=None,**kwargs)填充空值/缺失值1value用于填充的数值2methodpad/ffillbackfill/bfill表示填充方式,默认值为None将最后一个有效的数据向后传播,也就是说用缺失值前面的一个值代替缺失值将最后一个有效的数据向前传播,也就是说用缺失值后面的一个值代替缺失值3limit可以连续填充的最大数量,默认None注意:method参数不能与value参数同时使用填充空值/缺失值当使用fillna()方法进行填充时,既可以是标量、字典,也可以是Series或DataFrame对象图4-2填充缺失值示例假设现在有一张表格,它里面存在一些缺失值,如果使用一个常量66.0来替换缺失值,那么填充前后的效果如图4-2所示填充常数替换缺失值的示例代码如下In[5]:importpandasaspdimportnumpyasnpfromnumpyimportNaNdf_obj=pd.DataFrmme({'A':[1,2,3,NaN],'B':[NaN,4,NaN,6],'C':['a',7,8,9],'D':[NaN,2,3,NaN]})df_objOut[5]:ABCD0 1.0 NaN a NaN1 2.0 4.0 7 2.02 3.0 NaN 83.03 NaN 6.0 9 NaN填充空值/缺失值填充常数替换缺失值的示例代码如下In[6]:df_obj.fillna('66.0') #使用66.0替换缺失值Out[6]:ABCD0 1.0 66.0 a 66.01 2.0 4.0 7 2.02 3.0 66.0 83.0366.0 6.0 9 66.0填充空值/缺失值通过比较两次的结果可知,当使用任意一个有效值替换空值或缺失值时,对象中所有的空值或缺失值都将会被替换填充空值/缺失值如果希望填充不一样的内容,例如,A列缺失的数据使用数字“4.0”进行填充,B列缺失的数据使用数字“5.0”来填充,那么填充前后的效果如图4-3所示图4-3指定填充列调用fillna()方法时传入一个字典给value参数,其中字典的键为列标签,字典的值为待替换的值,实现对指定列的缺失值进行替换,具体示例代码如下In[7]:importpandasaspdimportnumpyasnpfromnumpyimportNaNdf_obj=pd.Dat3Frame{'A':[1,2,3,NaN],'B':[NaN,4,NaN,6],'C':['a',7,8,9],'D':[NaN,2,3,NaN]})df_objOut[7]:ABCD0 1.0 NaN a NaN1 2.0 4.0 7 2.02 3.0 NaN 83.03 NaN 6.0 9 NaNIn[8]:df_obj.fillna({'A':4.0,'B':5.0}) #指定列填充数据Out[8]:ABCD0 1.0 5.0 a NaN1 2.0 4.0 7 2.02 3.0 5.0 83.03 4.0 6.0 9 NaN填充空值/缺失值调用fillna()方法时传入一个字典给value参数,其中字典的键为列标签,字典的值为待替换的值,实现对指定列的缺失值进行替换,具体示例代码如下In[8]:df_obj.fillna({'A':4.0,'B':5.0}) #指定列填充数据Out[8]:ABCD0 1.0 5.0 a NaN1 2.0 4.0 7 2.02 3.0 5.0 83.03 4.0 6.0 9 NaN填充空值/缺失值填充空值/缺失值如果希望填充相邻的数据来替换缺失值,例如,A〜D列中按从前往后的顺序填充缺失的数据,也就是说在当前列中使用位于缺失值前面的数据进行替换,填充前后的效果如图4-4所示。图4-4前向填充示例调用fillna()方法时将“ffill”传入给method参数,采用前向填充的方式填充缺失的数据,具体示例代码如下。In[9]:importpandasaspdimportnumpyasnpfromnumpyimportNaNdf=pd.DataFrame{'A':[1,2,3,None],'B':[NaN,4,None,6],'C':['a',7,8,9],'D':[None,2,3,NaN]})dfOut[9]:ABCD0 1.0 NaN a NaN1 2.0 4.0 7 2.02 3.0 NaN 83.03 NaN 6.0 9 NaN填充空值/缺失值调用fillna()方法时将“ffill”传入给method参数,采用前向填充的方式填充缺失的数据,具体示例代码如下。In[10]:df.fillna(method='ffill') #使用前向填充的方式替换空值或缺失值Out[10]:A

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论