像梦一样奔驰|一行 Python 命令搞定前期数据探索性分析( 二 )

  • missing_diagrams:主要涉及到关于缺失值字段的可视化展示
  • correlations:顾名思义即调整有关各字段或变量之间相关关系的部分 , 包括是否计算相关系数、以及相关的阈值等
  • interactions:主要涉及两两字段或变量之前的相关关系图呈现
  • samples:分别对应了 Pandas 中 head() 和 tail() 方法 , 即预览前后多少条数据
  • 这些部分还有许多可以指定的参数 , 感兴趣的朋友可以直接参考官方文档() , 本文就不多加赘述了 。
    于是我们可以直接在代码中手动写入并进行调整 , 就像这样:
    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.ymlvars:num:quantiles:- 0.25- 0.5- 0.75skewness_threshold: 10low_categorical_threshold: 5chi_squared_threshold: 0.95cat:length: Trueunicode: Truecardinality_threshold: 50n_obs: 5chi_squared_threshold: 0.95coerce_str_to_date: Falsebool:n_obs: 3file:active: Falseimage:active: Falseexif: Truehash: Truesort: "desceding"修改完 yaml 文件之后 , 我们只需在生成报告时通过 config_file 参数指定配置文件所在的路径即可 , 就像这样:
    df.profile_report(config_file = "你的文件路径.yml")通过将配置文件与核心代码相分离 , 以提高我们代码的简洁性与可读性 。
    最后pandas-profiling 库为我们提供了一种方便、快捷的数据探索方式 , 提供了比基本统计信息更为丰富的一些信息(如缺失值相关图、相关关系图等) , 能够为我们前期的数据探索工作节省出大量的时间 。
    不过由于 pandas-profiling 生成的报告维度相对来说比较固定和模板化 , 所以对于想让报告更加丰富的朋友来说你可能需要自己再去做一些额外的工作了;同时 , 需要注意的是 , pandas-profiling 比较适合在中小数据集中使用 。 随着数据量的增加 , 报告渲染的速度会大幅度变慢且生成报告会耗时更多 。
    如果你仍有对大数据集进行 EDA 的需要 , 那么像官方文档说的那样你最好是通过抽样或者采样的方式来在不影响数据分布的情况下减少样本量 。 官方也有表示会在以后的版本中使用 modin、spark 和 dask 等高性能的库或框架作为可扩展的后端 , 到那时也许生成大数据集的 EDA 报告时可能就不是问题了 。
    【像梦一样奔驰|一行 Python 命令搞定前期数据探索性分析】作者:100gle , 练习时长不到两年的非正经文科生一枚 , 喜欢敲代码、写写文章、捣鼓捣鼓各种新事物;现从事有关大数据分析与挖掘的相关工作 。


    推荐阅读