只需几行代码,用python进行数据分析并生成精美的report - Pandas Profiling

简介

Pandas Profiling包是python里面又一个神奇的工具,它能对数据集(csv或者数据库)进行多个维度的分析,生成html格式的report,配以专业的图表,漂亮又炫酷。最关键的是,这个分析和生成report的过程是自动的,我们只需要简单的几行代码即可搞定。

如果小伙伴们已经熟悉Pandas Profiling包,那么这篇文章对您可能没太大用处,就没有必要再往下面读了。

但是。。。如果您从未听说过Pandas Profiling,或者只是听说过但没有具体见识过它的功能。那么这篇文章可能会对您有些用处。

Pandas Profiling是什么鬼

Pandas Profiling是一个python包,可让您以最少的代码创建探索性分析数据报告。

因此,如果您是手动进行探索性数据分析的数据科学家或分析师,那么使用pandas分析将为您节省大量时间,精力和键入时间。 您还记得进行数据分析时使用的所有重复代码,比如下面这些函数,是不是都已经用得想吐了:

info()
describe()
isnull()
corr()
etc.

您将不再需要再这样做。 Pandas Profiling包将为您完成此任务,并将创建数据的完整摘要报告。

安装Pandas Profiling

在DOS命令行或者Linux shell里面执行

pip install pandas-profiling

或者

pip3 install pandas-profiling

如果需要为pip设置代理,可以执行下面的语句:

pip3 --proxy http://proxyhost:8080 install pandas-profiling

或者还可以使用国内源,下载速度快很多。比如下面使用阿里云的pip源来安装:

pip3 install pandas-profiling -i https://mirrors.aliyun.com/pypi/simple/

安装该软件包需要一两分钟,您应该可以在python中使用pandas配置文件了。

创建分析报告

为了创建报告,您可以使用标准的read_csv()函数加载数据集,该函数将数据存储在Pandas Data Frame中。

然后使用ProfileReport初始化程序并将其刚刚创建的data frame作为参数传递给它。

您可以使用to_file()函数导出报告,以便对其进行检查。

import pandas as pd
from pandas_profiling import ProfileReport
df = pd.read_csv(data_file_name)
report = ProfileReport(df)
report.to_file(output_file='output.html')

让我们来看一个有真实数据的例子

我们将为真实数据集创建一个报告。 我们选择了可以从这里下载的美国新冠疫情数据集。 该数据集的大小为10MB,具有20多万行数据和6列。

让我们使用Pandas Profiling为该数据集创建一个报告。

>>> import pandas as pd
>>> from pandas_profiling import ProfileReport
>>> df = pd.read_csv('us_counties_covid19_daily.csv')
>>> report = ProfileReport(df)
>>> report.to_file(output_file='output.html')

运行此代码后,您应该会在几秒钟内看到生成报告的进度条,并且应该能够通过在浏览器中打开output.html文件来查看完整的报告。

这样就可以在新生成的output.html文件里面查看这个report了(注意output.html放在和heart.csv同一个目录下面)

Report的结构

让我们看看Pandas Profiling生成的Report中包含的内容。

  • 概述
    概述部分,我们应该看到三个选项卡:Overview,Reproduction和Warnings。
    Overview tab页提供有关数据的基本信息,例如列和行数,数据大小,缺失值的百分比,数据类型等。
    Reproduction(复制) tab页包含有关报表创建的信息。
    Warnings tab页包括在生成报告时已触发的警告。
    在这里插入图片描述

  • 变量
    本节着重于每个变量的详细分析。
    如果变量是连续变量,它将显示直方图,如果是分类变量,则将显示具有值分布的条形图。
    您还可以查看每个变量缺失值的百分比。
    下图显示了来自心脏病数据集的年龄和性别变量分析。
    在这里插入图片描述

  • 互动
    交互部分重点讨论数值变量之间的双变量关系。 您可以使用选项卡选择要检查的关系对。 下图显示了年龄与胆固醇之间的关系。
    在这里插入图片描述

  • Correlations(相关性)
    本节显示了不同类型的相关性。
    在这里插入图片描述

  • 缺失值
    这一部分显示随着列分解而导致数据集中缺少值的部分。
    我们可以看到在我的列中我们的数据集没有缺失值。
    在这里插入图片描述

  • Sample(采样)
    本节代替了手动数据分析中的head()和tail()函数。 您可以看到数据集的前10行和后10行。
    在这里插入图片描述

  • 重复数据
    本节向您显示数据集中是否有重复的值。 心脏病数据集中实际上有一个重复的条目,其详细信息显示在下面的截图中。
    Pandas Profiling

Pandas Profiling的优缺点

在本文中,我们讨论了Pandas Profiling包的优点,但是有什么缺点吗? 是的,我们来谈谈一些。
如果您的数据集很大,则创建报告将花费很长时间(在极端情况下可能需要数小时)。
我们有一些使用配置文件包的基本EDA,这是进行数据分析的良好起点,但绝对不是一个完整的探索。 通常,我们会看到更多的图形类型,例如箱线图,更详细的条形图,以及一些其他类型的可视化和探索技术,它们将揭示特定数据集的怪癖。
此外,如果您刚刚开始数据科学之旅,则值得学习如何使用熊猫本身来收集报告中包含的信息。 这样,您就可以练习编码和处理数据!

总结

在本文中,我们向您展示了如何安装和使用Pandas Profiling包。 我们甚至向您展示了对结果的快速解释。
下载美国新冠疫情数据集并自己尝试。

### 基于描述自动生成统计图表的方法 为了实现从描述到统计图表的自动化生成,可以采用多种技术和工具相结合的方式。一种有效途径是通过自然语言处理(NLP)技术解析文本描述提取其中的关键信息,进而映射至特定类型的图表配置参数。 对于具体的实施手段,可以通过DeepSeek这样的平台来生成PlantUML或Mermaid语法代码,随后借助对应的渲染引擎将这些代码转换成直观易懂的图表形式[^1]。这种方式特别适用于流程图、架构图等较为固定的结构化信息展示场景;而对于更广泛的统计数据可视化需求,则可能涉及到更多样化的解决方案。 #### 使用Python库进行自动化EDA 在Python环境中存在大量专门针对探索性数据分析(Exploratory Data Analysis, EDA)设计的强大库,它们能够帮助快速完成数据预览、清洗、特征工程等一系列前期准备工作,最终产出高质量的数据视图。例如Pandas Profiling就是一个非常流行的自动化EDA工具,只需几行简单命令即可获得详尽的数据概况报告,其中包括各类分布直方图、箱线图等形式多样的统计图形[^3]。 ```python import pandas as pd from pandas_profiling import ProfileReport df = pd.read_csv('data.csv') profile = ProfileReport(df, title="Pandas Profiling Report", explorative=True) profile.to_file("your_report.html") ``` #### 利用MathGL创建定制化统计图表 如果追求更高程度上的灵活性与个性化表达,在C++领域内也有像MathGL这样优秀的开源绘图库可供选择。该库提供了丰富的API接口用于构建复杂的二维三维图形对象,支持多种坐标系变换操作以及色彩填充模式设定等功能特性,非常适合科研工作者用来呈现精确数值关系的研究成果[^4]。 ```cpp #include <mgl2/mgl.h> int main() { mglGraph gr; gr.Title("Custom Statistical Chart"); gr.SetOrigin(0, 0); gr.SetRanges(-5, 5, -3, 3); gr.FPlot("cos(x)+sin(pi*x)/pi","b-", "Function Curve"); gr.Bar({-2,-1,0,1,2},{0.8,1.6,2.4,3.2,4},"g^", "Bar Series"); gr.Legend(); gr.WriteFrame("custom_chart.png"); } ``` 综上所述,无论是面向通用业务逻辑还是深入学术探究的不同层次应用场景,当前都已具备成熟的技术栈支撑起由文字叙述向可视形象转化的过程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值