——在能够使用大型数据集训练学习算法之前,我们通常需要先清理数据,也就是说,我们需要通过某个方法检测并更正数据中的错误。
——任何给定数据集可能会出现各种糟糕的数据,例如离群值或不正确的值,但是我们几乎始终会遇到的糟糕数据类型是缺少值。
——熊猫会为缺少的值分配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
显示:
数据量大时统计奶奶的个数
#计算在store_items中NaN值的个数 .sum .sum x=store_items.isnull () () () #输出 打印('在我们DataFrame中NaN的数量:“,x)
输出:
在我们DataFrame中NaN的数量:3
引用><代码> .isnull() 代码>方法返回一个大小和store_items一样的布尔型DataFrame,并用真正<代码> 代码>表示具有NaN值的元素,用<代码>假代码>表示非NaN值的元素。
store_items.isnull ()显示:
在大熊猫中,逻辑真实值的数字值是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)显示为:
store_items。dropna(轴=1)显示为:
注意:
- <代码> .dropna() 代码>方法不在原地地删除具有NaN值的行或列。
——原始DataFrame不会改变。你始终可以在<代码> dropna() 代码>方法中将关键字<代码>原地代码>设为<代码>真正> 代码,在原地删除目标行或列。
我们不再删除NaN值,而是将它们替换为合适的值。例如,我们可以选择将所有NaN值替换为0。为此,我们可以使用<代码> .fillna() 代码>方法
store_items.fillna (0)显示:
我们还可以使用<代码> .fillna() 代码>方法将NaN值替换为DataFrame中的上个值,称之为<代码>前向填充
在熊猫中处理NaN值的方法