iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >一行Python命令搞定前期数据探索性的方法是什么
  • 653
分享到

一行Python命令搞定前期数据探索性的方法是什么

2023-06-16 06:06:27 653人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章主要讲解了“一行python命令搞定前期数据探索性的方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“一行Python命令搞定前期数据探索性的方法是什么”吧!对于每个从事和数据

这篇文章主要讲解了“一行python命令搞定前期数据探索性的方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“一行Python命令搞定前期数据探索性的方法是什么”吧!

对于每个从事和数据科学有关的人来说,前期的数据清洗和探索一定是个花费时间的工作。毫不夸张的说,80%的时间我们都花在了前期的数据工作中,包括清洗、处理、EDA(Exploratory Data Analysis,探索性数据分析)等。前期的工作不仅关乎数据的质量,也关乎最终模型预测效果的好坏。

每当我们手上出现一份新的数据时,我们都需要事先通过人为地观察、字段释义等方式预先对数据进行熟悉与理解。在清洗、处理完数据之后才会开始真正的 EDA 过程。

这个过程最通用的操作无非就是对现有的数据做基本性的统计、描述,包括平均值、方差、最大值与最小值、频数、分位数、分布等。实际上往往都是比较固定且机械的。

在 R 语言中 skimr 包提供了丰富的数据探索性统计信息,比 pandas 中的 describe() 基本统计信息更为丰富一些。

一行Python命令搞定前期数据探索性的方法是什么

01-skmir

但在 Python 社区中,我们同样也可以实现 skmir 的功能,甚至比 skmir 有过之而无不及。那就是使用 pandas-profiling 库来帮助我们搞定前期的数据探索工作。

快速使用

通过 pip install pandas-profiling 之后我们就可以直接导入并使用了。我们只需要通过其一行核心代码 ProfileReport(df, **kwargs) 即可实现:

import pandas as pd  import seaborn as sns  from pandas_profiling import ProfileReport  titanic = sns.load_dataset("Titanic")  ProfileReport(titanic, title = "The EDA of Titanic Dataset")

如果我们是在 Jupyter Notebook 中使用,则会在 Jupyter Notebook 中渲染最后直接输出到单元格中。

一行Python命令搞定前期数据探索性的方法是什么

02-profile

pandas-profiling 库也扩展了 DataFrame 对象方法,这意味着我们也可以通过像调用方法一样使用 DataFrame.profile_report() 来实现和上述一样的效果。

无论使用哪种方式,最后都是生成一个 ProfileReport 对象;如果要进一步贴合 Jupyter Notebook,可以直接调用 to_widgets() 和 to_notebook_iframe() 来分别生成挂架或对应的组件,在展示效果上会更加美观,而不是在输出栏进行展示。

一行Python命令搞定前期数据探索性的方法是什么

03-widgets

如果不在 Jupyter Notebook 中直接使用,而是使用其他 IDE,那么我们可以通过 to_file() 方法来直接将报告输出,需要注意的是最后保存的文件名需要加上扩展名 .html

另外,Pandas-profiling 还和多个框架、云上平台等进行了集成,能够让我们方便的进行调用,详情见官网(https://pandas-profiling.GitHub.io/pandas-profiling/docs/master/rtd/pages/integrations.html)。

进一步定制报告信息

虽然生成的探索性报告基本上已经能满足我们了解数据的简单需求,但是当中输出的信息也有些不足或是冗余。好在 pandas-profiling 也给我们提供了自己定制的可能。这些定制的配置最终会写入到 yaml 文件中。

在官方文档中列出了几个我们能够进一步调整的部分,分别对应了报告 Tab 栏的各部分标签:

  •  vars:主要用于调整数据中字段或变量在报告中的呈现的统计指标

  •  missing_diagrams:主要涉及到关于缺失值字段的可视化展示

  •  correlations:顾名思义即调整有关各字段或变量之间相关关系的部分,包括是否计算相关系数、以及相关的阈值等

  •  interactions:主要涉及两两字段或变量之前的相关关系图呈现

  •  samples:分别对应了 Pandas 中 head() 和 tail() 方法,即预览前后多少条数据

这些部分还有许多可以指定的参数,感兴趣的朋友可以直接参考官方文档(Https://pandas-profiling.github.io/pandas-profiling/docs/master/rtd/pages/advanced_usage.html),本文就不多加赘述了。

于是我们可以直接在代码中手动写入并进行调整,就像这样:

profile_config = {      "progress_bar": False,       "sort": "ascending",      "vars": {          "num": {"chi_squared_threshold": 0.95},          "cat": {"n_obs": 10}      },       "missing_diagrams": {          'heatmap': False,          'dendrogram': False,      }  }  profile = titanic.profile_report(**profile_config)  profile.to_file("titanic-EDA-report.html")

将所有配置的信息写在一个字典变量中,再通过 **variable 的形式将键值对进行解包使其能够根据键来对应到相应的参数中。

除了代码中的配置写法外,如果你稍微了解一点 yaml 配置文件的写法,那么我们也无需在代码中逐个写入,而是可以通过在 yaml 文件中修改。修改的不仅官方文档中所列出的配置选项,还能修改未列出的参数。由于配置文件过长,这里我只放出基于官方默认配置文件 config_default.yaml 自己做出修改的部分:

# profile_config.yml  vars:      num:          quantiles:                - 0.25                - 0.5                - 0.75          skewness_threshold: 10          low_cateGorical_threshold: 5          chi_squared_threshold: 0.95      cat:          length: True          unicode: True          cardinality_threshold: 50          n_obs: 5          chi_squared_threshold: 0.95          coerce_str_to_date: False      bool:          n_obs: 3      file:          active: False      image:          active: False          exif: True          hash: True  sort: "desceding"

修改完 yaml 文件之后,我们只需在生成报告时通过 config_file 参数指定配置文件所在的路径即可,就像这样:

df.profile_report(config_file = "你的文件路径.yml")

通过将配置文件与核心代码相分离,以提高我们代码的简洁性与可读性。

感谢各位的阅读,以上就是“一行Python命令搞定前期数据探索性的方法是什么”的内容了,经过本文的学习后,相信大家对一行Python命令搞定前期数据探索性的方法是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: 一行Python命令搞定前期数据探索性的方法是什么

本文链接: https://www.lsjlt.com/news/282691.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 一行Python命令搞定前期数据探索性的方法是什么
    这篇文章主要讲解了“一行Python命令搞定前期数据探索性的方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“一行Python命令搞定前期数据探索性的方法是什么”吧!对于每个从事和数据...
    99+
    2023-06-16
  • redis命令行查看数据的方法是什么
    使用redis-cli命令可以进入Redis的命令行界面,然后可以使用多个命令来查看数据,包括: keys *:查看所有的键名。t...
    99+
    2024-04-09
    redis
  • python命令行传入参数的方法是什么
    Python命令行传入参数的方法是使用sys模块中的argv列表。argv是一个包含命令行参数的列表,其中第一个元素是脚本的名称,后...
    99+
    2023-09-22
    python
  • Python 更快进行探索性数据分析的四个方法
    大家好,常用探索性数据分析方法很多,比如常用的 Pandas DataFrame 方法有 .head()、.tail()、.info()、.describe()、.plot() 和 ...
    99+
    2024-04-02
  • mysql命令行备份数据库的方法是什么
    这篇文章主要介绍“mysql命令行备份数据库的方法是什么”,在日常操作中,相信很多人在mysql命令行备份数据库的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”my...
    99+
    2023-02-15
    mysql 数据库
  • oracle数据库命令行备份的方法是什么
    要在Oracle数据库中使用命令行进行备份,可以使用expdp命令。以下是使用expdp命令进行备份的步骤: 打开命令行窗口,并...
    99+
    2024-04-26
    oracle
  • linux多个命令一起执行的方法是什么
    在Linux中,可以使用分号(; )来将多个命令串联在一起,使它们一起执行。分号的作用是分隔不同的命令,使其按顺序执行。例如:com...
    99+
    2023-09-15
    linux
  • plsql删除一行数据的方法是什么
    要删除一行数据,可以使用DELETE语句。该语句的基本语法如下: DELETE FROM table_name WHER&#...
    99+
    2024-04-09
    plsql
  • Python逐行读取数据的方法是什么
    要逐行读取数据,可以使用Python内置的open函数打开文件,并使用for循环逐行读取数据。下面是一个示例代码: with ope...
    99+
    2024-04-02
  • python一组数据去除掉异常数据的方法是什么
    在Python中,可以使用以下方法来去除一组数据中的异常数据:1. 使用条件语句过滤数据:通过设置条件语句来判断数据是否异常,然后将...
    99+
    2023-09-23
    python
  • Python进行数据相关性分析的三种方式是什么
    本文小编为大家详细介绍“Python进行数据相关性分析的三种方式是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python进行数据相关性分析的三种方式是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。相...
    99+
    2023-06-30
  • Python异步在非阻塞子进程中运行命令的方法是什么
    今天小编给大家分享一下Python异步在非阻塞子进程中运行命令的方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1....
    99+
    2023-07-05
  • python多列数据合并成一列的方法是什么
    将多列数据合并成一列的方法有多种,以下是其中的几种常见方法:1. 使用pandas库的concat()函数:可以将多个列或...
    99+
    2023-09-27
    python
  • 保证Redis缓存与数据库一致性的方法是什么
    本文小编为大家详细介绍“保证Redis缓存与数据库一致性的方法是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“保证Redis缓存与数据库一致性的方法是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1、四...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作