多数调查表明,数据科学家和数据分析师需要花费70-80%的时间来清理和准备数据以进行分析。
对于许多数据工作者来说,数据的清理和准备也往往是他们工作中最不喜欢的部分,因此他们将另外20-30%的时间花在抱怨上,这虽然是一个玩笑,但是却很好的反应了数据清洗在数据分析工作当中的特殊地位.
在平时的工作生活中,数据总是会出现某些不一致、缺失的输入、不相关的信息、重复的信息或彻头彻尾的错误等等情况。尤其是当数据来自不同来源时,每个来源都会有自己的一套怪癖、挑战和不规则之处。凌乱的数据是没有用处的,有时候甚至会起到反方向作用,这就是数据科学家花费大部分时间来理解所有数据的原因
虽然清理和准备数据既繁琐又辛苦,但是我们的数据越干净、越有条理,后面的一切工作都会变得更快、更轻松、更高效。
本文就来分享精选的15个最有用的Python数据清理库,希望在数据分析的路上,大家都能越快轻松!
NumPy
NumPy是一个快速且易于使用的开源科学计算Python库,它也是数据科学生态系统的基础库,因为Pandas和Matplotlib等许多最流行的Python库都是建立在NumPy之上的
除了作为其他强大库的基础之外,NumPy还具有许多特性,使其成为Python数据分析不可或缺的一部分。由于其速度和多功能性,NumPy的矢量化、索引和广播概念代表了数组计算的事实标准,NumPy在处理多维数组时尤为出色。它还提供了一个全面的数值计算工具箱,如线性代数例程、傅立叶变换等
NumPy可以为很多人做很多事情,其高级语法允许任何背景或经验水平的程序员使用其强大的数据处理能力。例如,基于NumPy生成了有史以来第一张黑洞图像,它还证实了引力波的存在,目前正在各种科学研究中都起着重要的作用
就是这样一个涵盖从运动到太空的所有内容的程序也可以帮助我们管理和清理数据,不得不说,Numpy库太神奇了
Pandas
Pandas是由NumPy提供支持的库,它是Python中使用最广泛的数据分析和操作库
Pandas快速且易于使用,其语法非常人性化,再加上其在操作DataFrame方面拥有令人难以置信的灵活性,使其成为分析、操作和清理数据不可或缺的工具
这个强大的Python库不仅可以处理数字数据,还可以处理文本数据和日期数据。它允许我们加入、合并、连接或复制DataFrame,并使用drop()函数轻松添加或删除列或行
简而言之,Pandas结合了速度、易用性和灵活的功能,创建了一个非常强大的工具,使数据操作和分析变得快速而简单
Matplotlib
了解我们的数据是清理过程的关键部分,清理数据的目的就是使其易于理解。但是在我们拥有漂亮干净的数据之前,需要先了解凌乱数据中的问题,例如它们的种类和范围,然后才能对其进行有效的清理,这个操作的很大一部分取决于数据的准确和直观呈现的程度
Matplotlib以其令人印象深刻的数据可视化而闻名,这使其成为数据清理工作中的宝贵工具,它是使用Python生成图形、图表和其他2D数据可视化的首选工具库
我们可以在数据清理中使用Matplotlib,通过生成分布图来帮助我们了解数据的不足之处
Datacleaner
Datacleaner是一个基于PandasDataFrame的第三方库,虽然Datacleaner出现的时间比较短并且不如Pandas流行,但是,Datacleaner有一种独特的方法,它结合了一些典型的数据清理功能并使其自动化,这为我们节省了宝贵的时间和精力
使用Datacleaner,我们可以在逐列的基础上使用众数或中位数轻松替换缺失值,对分类变量进行编码,并删除具有缺失值的行
Dora
Dora库使用Scikit-learn、Pandas和Matplotlib进行探索性分析,或者更具体地说,用于自动化探索性分析中最不受欢迎的方面。除了处理特征选择、提取和可视化之外,Dora还优化和自动化数据清理
Dora将通过许多数据清理功能为我们节省宝贵的时间和精力,例如输入缺失值、读取缺失值和缩放不佳的值的数据以及输入变量的缩放值等等
此外,Dora提供了一个简单的界面,用于在我们转换数据时保存数据快照,并以其独特的数据版本控制功能与其他Python包区别开来
Seaborn
在前面,我们讨论了可视化数据以揭示数据缺陷和不一致的重要性。在解决数据中的问题之前,我们需要知道它们是什么以及它们在哪里,此时使用数据可视化就是最好的方案。虽然对于许多Python用户来说,Matplotlib是数据可视化的首选库,然而一些用户发现Matplotlib在自定义数据可视化选项方面的局限性也非常大,于是我们有了Seaborn。
Seaborn是一个数据可视化包,它建立在Matplotlib之上,可生成有吸引力且信息丰富的统计图形,同时提供可定制的数据可视化
它也改进了在Pandas的DataFrames中的运行效率,可以更加紧密地与Pandas相结合,使探索性分析和数据清理更加愉快
Arrow
提高数据质量的一个重要方面是在整个DataFrame中创建统一性和一致性,对于试图在处理日期和时间时创建统一性的Python开发人员来说,这个过程可能往往会比较困难。经常在花费了无数个小时和无数行代码之后,日期和时间格式化的特殊困难仍然存在
Arrow是一个Python库,专门用于处理这些困难并创建数据一致性。它的省时功能包括时区转换;自动字符串格式化和解析;支持pytz、dateutil对象、ZoneInfotzinfo;生成范围、下限、时间跨度和上限,时间范围从微秒到数年不等
Arrow可以识别时区(与标准Python库不同),并且默认为UTC。它通过更少的代码和更少的输入授予用户更熟练的日期和时间操作命令。这意味着我们可以为我们的数据带来更大的一致性,同时减少花在时钟上的时间
Scrubadub
Scrubadub是金融和医疗数据科学家的最爱,它是一个Python库,专门用于从自由文本中消除个人身份信息(PII)
这个简单、免费和开源的软件包可以轻松地从我们的数据中删除敏感的个人信息,从而保护当事人的隐私和安全
Scrubadub目前允许用户清除以下信息的数据:
电子邮件地址
网址
姓名
Skype用户名
电话号码
密码/用户名组合
社会安全号码
Tabulate
只需调用一个函数,Tabulate就可以使用我们的数据创建小型且有吸引力的表格,由于具有数字格式、标题和小数列对齐等许多功能,这些表格具有很高的可读性
这个开源库还允许用户使用其他工具和语言处理表格数据,让用户能够以其他擅长的格式(如HTML、PHP或MarkdownExtra)输出数据
Missingno
处理缺失值是数据清理的主要方面之一,Missingno库应运而生。它逐列识别和可视化DataFrame中的缺失值,以便用户可以看到他们数据所处的状态
将问题可视化是解决问题的第一步,而Missingno是一个简单易用的库,可以很好地完成这项工作
Modin
正如我们上面提到的,Pandas已经是一个快速的库了,但Modin将Pandas带到一个全新的水平。Modin通过分发数据和计算速度来提高Pandas的性能
Modin用户将受益于与Pandas语法的完美契合和不显眼的集成,可以将Pandas的速度提高多达%!
Ftfy
Ftfy的诞生是为了一个简单的任务:将糟糕的Unicode和无用的字符转换为相关且可读的文本数据
比如:
quote\x9d="quote"u=ült;3=3复制代码
无需花费大量时间处理文本数据,使用Ftfy就可以快速理解无意义的内容
SciPy
SciPy不仅仅是一个库,它还是一个完整的数据科学生态系统
此外,SciPy还提供了许多专用工具,其中之一是Scikit-learn,完美可以利用其“Preprocessing”包进行数据清理和数据集标准化
Dabl
scikit-learn项目的一名核心工程师开发了Dabl作为数据分析库,以简化数据探索和预处理的过程
Dabl有一个完整的流程来检测数据集中的某些数据类型和质量问题,并自动应用适当的预处理程序
它可以处理缺失值,将分类变量转换为数值,它甚至具有内置的可视化选项以促进快速数据探索
Imblearn
我们要介绍的最后一个库是Imbalanced-learn(缩写为Imblearn),它依赖于Scikit-learn并为面临分类和不平衡类的Python用户提供工具支持
使用称为“undersampling”的预处理技术,Imblearn将梳理完美的数据并删除数据集中的缺失、不一致或其他不规则数据
总结
我们的数据分析模型取决于我们输入的数据,并且我们的数据越干净,处理、分析和可视化就越简单,善于利用工具,会使我们的工作更加轻松愉快
虽然上面总结的工具不可能包含所有的数据清洗工具,但是我们只要选择适合我们的就可以了,希望今天的分享能够帮助到你~
转载请注明:http://www.0431gb208.com/sjsbszl/1191.html