如何使用pandas_profiling完成探索性数据分析,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
创新互联是创新、创意、研发型一体的综合型网站建设公司,自成立以来公司不断探索创新,始终坚持为客户提供满意周到的服务,在本地打下了良好的口碑,在过去的十余年时间我们累计服务了上千家以及全国政企客户,如三维植被网等企业单位,完善的项目管理流程,严格把控项目进度与质量监控加上过硬的技术实力获得客户的一致表扬。
笔者最近发现一款将pandas数据框快速转化为描述性数据分析报告的package——pandas_profiling。一行代码即可生成内容丰富的EDA内容,两行代码即可将报告以.html格式保存。笔者当初也是从数据分析做起的,所以深知这个工具对于数据分析的朋友而言极为方便,在此特地分享给大家。
我们以uci机器学习库中的人口调查数据集adult.data为例进行说明。
数据集地址:
https://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.data
常规情况下我们拿到数据做EDA的时候这几种函数是必用的:
看一下数据长啥样:
import numpy as npimport pandas as pdadult = pd.read_csv('../adult.data')adult.head()
对数据进行统计描述:
adult.describe()
查看变量信息和缺失情况:
adult.info()
这是最简单最快速了解一个数据集的方法。当然,更深层次的EDA一定是要借助统计图形来展示的。基于scipy、matplotlib和seaborn等工具的展示这里权且略过。
现在我们有了pandas_profiling。上述过程以及各种统计相关性计算、统计绘图全部由pandas_profiling打包搞定了。pandas_profiling安装,包括pip、conda和源码三种安装方式。
pip:
pip install pandas-profilingpip install https://github.com/pandas-profiling/pandas-profiling/archive/master.zip
conda:
conda install -c conda-forge pandas-profiling
source:
先下载源码文件,然后解压到setup.py所在的文件目录下:
python setup.py install
再来看pandas_profiling基本用法,用pandas将数据读入之后,对数据框直接调用profile_report方法生成EDA分析报告,然后使用to_file方法另存为.html文件。
profile = df.profile_report(title="Census Dataset")profile.to_file(output_file=Path("./census_report.html"))
看看报告效果如何。pandas-profiling EDA报告包括数据整体概览、变量探索、相关性计算、缺失值情况和抽样展示等5个方面。
数据整体概览:
变量探索:
相关性计算:
这里为大家提供5种相关性系数。
缺失值情况:
pandas-profiling为我们提供了四种缺失值展现形式。
数据样本展示:
就是pandas里面的df.head()和df.tail()两个函数。
上述示例参考代码:
from pathlib import Path
import pandas as pd
import numpy as np
import requests
import pandas_profiling
if __name__ == "__main__":
file_name = Path("census_train.csv")
if not file_name.exists():
data = requests.get(
"https://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.data"
)
file_name.write_bytes(data.content)
# Names based on https://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.names
df = pd.read_csv(
file_name,
header=None,
index_col=False,
names=[
"age",
"workclass",
"fnlwgt",
"education",
"education-num",
"marital-status",
"occupation",
"relationship",
"race",
"sex",
"capital-gain",
"capital-loss",
"hours-per-week",
"native-country",
],
)
# Prepare missing values
df = df.replace("\\?", np.nan, regex=True)
profile = df.profile_report(title="Census Dataset")
profile.to_file(output_file=Path("./census_report.html"))
除此之外,pandas_profiling还提供了pycharm配置方法:
配置完成后在pycharm左边项目栏目直接右键external_tool下的pandas_profiling即可直接生成EDA报告。更多内容大家可以到该项目GitHub地址查看:
关于如何使用pandas_profiling完成探索性数据分析问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注创新互联行业资讯频道了解更多相关知识。