在熊猫中处理NaN值的方法

  

  

——在能够使用大型数据集训练学习算法之前,我们通常需要先清理数据,也就是说,我们需要通过某个方法检测并更正数据中的错误。
  ——任何给定数据集可能会出现各种糟糕的数据,例如离群值或不正确的值,但是我们几乎始终会遇到的糟糕数据类型是缺少值。
  ——熊猫会为缺少的值分配NaN值。

  

        熊猫作为pd导入      #我们创建Python字典的列表   #创建一个字典列表   items2=[{“裤子”:“自行车”:20日,30日,“手表”:35岁,“衬衫”:15,“鞋”:8“西装”:45},   {“手表”:10,“眼镜”:50岁“自行车”:15日“裤子”:5,“衬衫”:2,“鞋”:5“西装”:7},   {“裤子”:“自行车”:20日,30日,“手表”:35岁的“眼镜”:4,“鞋”:10}]      #创建一个DataFrame并设置行索引   store_items=pd。DataFrame (items2指数=[“存储1”、“商店2”,“商店3 '))      #显示   store_items      

显示:   

在熊猫中处理NaN值的方法

  

数据量大时统计奶奶的个数

        #计算在store_items中NaN值的个数   .sum .sum x=store_items.isnull () () ()      #输出   打印('在我们DataFrame中NaN的数量:“,x)      

输出:   

  

在我们DataFrame中NaN的数量:3

     

<代码> .isnull() 方法返回一个大小和store_items一样的布尔型DataFrame,并用真正<代码> 表示具有NaN值的元素,用<代码>假表示非NaN值的元素。

        store_items.isnull ()      

显示:   

在熊猫中处理NaN值的方法

  

在大熊猫中,逻辑真实值的数字值是1,逻辑值错误的数字值是0。

  

因此,我们可以通过数逻辑真实值的数量数出NaN值的数量。

  

为了数逻辑真实值的总数,我们使用.sum()方法两次。

  

要使用该方法两次,是因为第一个<代码> sum() 返回一个熊猫系列,其中存储了列上的逻辑值<代码> True>   

第二个<代码> sum() 将上述熊猫系列中1的相加

  

除了数NaN值的数量之外,我们还可以采用相反的方式,我们可以数非NaN值的数量。为此,我们可以使用<代码> .count() 方法

        打印('在我们DataFrame的列中具有非NaN值得数量分别为:\ n”, store_items.count ())      

输出:   

  

在我们DataFrame的列中具有非NaN值得数量:
  自行车3
  眼镜2
  裤子3
  衬衫2
  鞋子3
  适合2
  表3
  dtype: int64

     

  
      <李>如果轴=0,.dropna(轴)方法将删除包含NaN值的任何行   <李>如果轴=1,.dropna(轴)方法将删除包含NaN值的任何列李   
        #删除包含NaN值得任何行   store_items。dropna(轴=0)      

显示为:

  

在熊猫中处理NaN值的方法

        store_items。dropna(轴=1)      

显示为:

  

在熊猫中处理NaN值的方法

  

注意:
  

  

- <代码> .dropna() 方法不在原地地删除具有NaN值的行或列。
  ——原始DataFrame不会改变。你始终可以在<代码> dropna() 方法中将关键字<代码>原地设为<代码>真正>   

  

我们不再删除NaN值,而是将它们替换为合适的值。例如,我们可以选择将所有NaN值替换为0。为此,我们可以使用<代码> .fillna() 方法

        store_items.fillna (0)      

显示:   

在熊猫中处理NaN值的方法

  

我们还可以使用<代码> .fillna() 方法将NaN值替换为DataFrame中的上个值,称之为<代码>前向填充

在熊猫中处理NaN值的方法