缺失值可视化Python工具库:missingno

简介: 缺失值可视化Python工具库:missingno

适用场景


无论是打比赛还是在实际工程项目中,都会遇到数据缺失的情况,如果数据集较小,还能在excel或者其他可视化软件大致看一下导致数据缺失的原因,那么数据集较大时,想要探索其中规律,无疑难度也是越来越大。


missingno提供了一个灵活且易于使用的缺少数据可视化工具和实用程序的小型工具集,使你可以快速直观地概述数据集的完整性。


安装及引用


pip install missingno
import missingno as msno


missingno一般配合numpy和pandas一起使用:


import numpy as np
import pandas as pd


案例中还会用到quilt,这是一个数据包管理器,可以让你像管理代码一样管理数据,anaconda没有内置,所以需要安装一下。


640.png


导入数据


from quilt.data.ResidentMario import missingno_data
collisions = missingno_data.nyc_collision_factors()
collisions = collisions.replace("nan", np.nan)
## 绘制缺失值矩阵图
msno.matrix无效矩阵是一个数据密集的显示,它可以快速直观地看出数据完整度。  
msno.matrix(collisions.sample(250))


640.png


空白越多说明缺失越严重


右侧的迷你图概述了数据完整性的一般形状,并指出了数据集中具有最大和最小无效值的行数。需要说明的是,这个矩阵图最多容纳50个变量,超过此范围的标签开始重叠或变得不可读,默认情况下,大尺寸显示器会忽略它们。


如果要处理时间序列数据,则可以使用关键字参数指定周期性freq:


null_pattern = (np.random.random(1000).reshape((50, 20)) > 0.5).astype(bool)  
null_pattern = pd.DataFrame(null_pattern).replace({False: None})  
msno.matrix(null_pattern.set_index(pd.period_range('1/1/2011', '2/1/2015', freq='M')) , freq='BQ')
![](https://my-wechat.oss-cn-beijing.aliyuncs.com/image_20200403162803.png)


绘制缺失值条形图


条形图提供与矩阵图相同的信息,但格式更简单。msno.bar(collisions.sample(1000))

640.png

绘制缺失值热力图


missingno相关性热力图可以显示无效的相关性:一个变量的存在或不存在如何强烈影响的另一个的存在。


数值为1:两个变量一个缺失另一个必缺失;


数值为-1:一个变量缺失另一个变量必然不缺失。


数值为0:变量缺失值出现或不出现彼此没有影响。


热力图非常适合于选择变量对之间的数据完整性关系,但是当涉及到较大的关系时,其解释力有限,并且它不特别支持超大型数据集。


注:始终为满或始终为空的变量没有任何有意义的关联,因此会从可视化中删除。


msno.heatmap(collisions)


640.png

缺失值树状图


通过树状图,可以更全面地观察缺失变量的关联性,揭示比关联热力图更深刻的相关关系:


msno.dendrogram(collisions)

640.png


树状图使用层次聚类算法通过变量的无效相关性(以二进制距离来衡量)将变量彼此分类。在树的每个步骤中,根据哪个组合最小化其余群集的距离来对变量进行拆分。变量集越单调,它们的总距离越接近零,而它们的平均距离(y轴)越接近零。以零距离链接在一起的簇叶完全可以预测彼此的存在-一个变量在填充另一个变量时可能始终为空,或者它们可能始终都被填充或都为空,依此类推。


簇叶几乎分裂为零,但不分裂为零,彼此预测得很好,但仍不完美。如果你自己的数据集的解释是,这些列实际上是或者应该是在无效相互匹配(例如,作为CONTRIBUTING FACTOR VEHICLE 2和VEHICLE TYPE CODE 2应该),那么集群叶的高度告诉你,在绝对数量,记录多久是“不匹配”或提交错误的文件,也就是说,如果您愿意,则必须填写或删除多少个值。

相关文章
|
10月前
|
数据可视化 搜索推荐 大数据
基于python大数据的北京旅游可视化及分析系统
本文深入探讨智慧旅游系统的背景、意义及研究现状,分析其在旅游业中的作用与发展潜力,介绍平台架构、技术创新、数据挖掘与服务优化等核心内容,并展示系统实现界面。
|
9月前
|
Java 数据挖掘 数据处理
(Pandas)Python做数据处理必选框架之一!(一):介绍Pandas中的两个数据结构;刨析Series:如何访问数据;数据去重、取众数、总和、标准差、方差、平均值等;判断缺失值、获取索引...
Pandas 是一个开源的数据分析和数据处理库,它是基于 Python 编程语言的。 Pandas 提供了易于使用的数据结构和数据分析工具,特别适用于处理结构化数据,如表格型数据(类似于Excel表格)。 Pandas 是数据科学和分析领域中常用的工具之一,它使得用户能够轻松地从各种数据源中导入数据,并对数据进行高效的操作和分析。 Pandas 主要引入了两种新的数据结构:Series 和 DataFrame。
749 0
|
10月前
|
存储 人工智能 测试技术
如何使用LangChain的Python库结合DeepSeek进行多轮次对话?
本文介绍如何使用LangChain结合DeepSeek实现多轮对话,测开人员可借此自动生成测试用例,提升自动化测试效率。
2209 125
如何使用LangChain的Python库结合DeepSeek进行多轮次对话?
|
10月前
|
监控 数据可视化 数据挖掘
Python Rich库使用指南:打造更美观的命令行应用
Rich库是Python的终端美化利器,支持彩色文本、智能表格、动态进度条和语法高亮,大幅提升命令行应用的可视化效果与用户体验。
931 0
|
10月前
|
存储 缓存 测试技术
理解Python装饰器:简化代码的强大工具
理解Python装饰器:简化代码的强大工具
|
9月前
|
数据可视化 关系型数据库 MySQL
【可视化大屏】全流程讲解用python的pyecharts库实现拖拽可视化大屏的背后原理,简单粗暴!
本文详解基于Python的电影TOP250数据可视化大屏开发全流程,涵盖爬虫、数据存储、分析及可视化。使用requests+BeautifulSoup爬取数据,pandas存入MySQL,pyecharts实现柱状图、饼图、词云图、散点图等多种图表,并通过Page组件拖拽布局组合成大屏,支持多种主题切换,附完整源码与视频讲解。
884 4
【可视化大屏】全流程讲解用python的pyecharts库实现拖拽可视化大屏的背后原理,简单粗暴!
|
9月前
|
传感器 运维 前端开发
Python离群值检测实战:使用distfit库实现基于分布拟合的异常检测
本文解析异常(anomaly)与新颖性(novelty)检测的本质差异,结合distfit库演示基于概率密度拟合的单变量无监督异常检测方法,涵盖全局、上下文与集体离群值识别,助力构建高可解释性模型。
657 10
Python离群值检测实战:使用distfit库实现基于分布拟合的异常检测
|
10月前
|
机器学习/深度学习 编解码 Python
Python图片上采样工具 - RealESRGANer
Real-ESRGAN基于深度学习实现图像超分辨率放大,有效改善传统PIL缩放的模糊问题。支持多种模型版本,推荐使用魔搭社区提供的预训练模型,适用于将小图高质量放大至大图,放大倍率越低效果越佳。
801 3

推荐镜像

更多