网站建设经营属性,淘客网站建设收费吗,技术支持东莞网站建设,启东做网站在数据科学的工作过程中#xff0c;我们通过查看数据的基本要素和元数据之后#xff0c;需要根据查看的结果#xff0c;考虑是否需要清洗数据。缺失值的查看与处理#xff0c;就是清洗数据的一部分。如果我们的数据集中#xff0c;存在缺失值的话#xff0c;就需要考虑如…在数据科学的工作过程中我们通过查看数据的基本要素和元数据之后需要根据查看的结果考虑是否需要清洗数据。缺失值的查看与处理就是清洗数据的一部分。如果我们的数据集中存在缺失值的话就需要考虑如何处理缺失值。
缺失数据的产生
那么缺失值是怎么产生的呢
在我们收集数据的过程中不管是通过手工收集还是通过信息系统录入数据的方式收集。可能会存在两种产生缺失值的情况一种就是人为原因导致数据没有录入或者是没有收集到形成缺失值。另外一种可能是汇总组合数据的时候由于算法设计的问题或者是系统处理数据环节存在问题也可能导致产生缺失值。
查看缺失数据
我们先来看在我们的原始数据集中如何来查看是否存在缺失值。
先导入必要的包设置数据集行和列显示的数目。 这里我们通过ucimlrepo库的fetch_ucirepo函数获取bank_marketing的真实数据集。 bank_marketing数据集是葡萄牙一家银行机构的直接营销活动数据营销活动是基于电话实现的。用来预测银行客户是否会订阅银行产品定期存款。
从上图可以大致看出有NaN的列就是存在缺失值的变量。
我们还可以通过isnull函数查看数据集的所有变量的缺失值情况通过sum聚合函数汇总存在缺失值变量的数据总数。 为0的变量是不存在缺失值的变量。不为0的变量则是存在缺失值的变量需要考虑处理缺失值。
处理缺失数据
处理缺失数据的方式一种是直接丢弃存在缺失值的行一种是填充缺失值所在的单元格数据。
我们先来看直接丢弃存在缺失值的行。为了不影响原始数据集我们复制一个新数据集data1。 通过dropna函数直接丢弃存在缺失值的行。可以看出操作完成后数据从45211行减少到了7842行。
这里我还可以给dropna函数加上参数来对整行都是缺失值的行进行丢弃语句如下所示。
df.dropna(howall)
对整列都是缺失值的列进行丢弃的话语句如下所示。
df.dropna(howall, axis1)
我们再来看如何填充缺失值数据。当具体的单元格中的缺失值数据我们在现实中找到合适的值的话就可以直接填充缺失值数据。
我们可以对整个数据集用0来填充缺失值。 这样缺失值的地方就用0进行了替代。
我们也可以考虑用缺失值前面或后面的值来填充。 如果是用后面的值进行填充的话语句如下所示。
data1[job].fillna(methodbfill)
如果要对某个单元格进行填充的话只要查询到这个单元格然后对这个单元格进行赋值操作就可以填充新的数据值。 缺失值的填充在现实的数据清洗过程中用处非常大。我们收集到的数据往往需要反复修改不管是对缺失值的处理还是对其他异常情况的处理都需要用到缺失值填充的操作。
以上就是本篇文章的全部内容。