• 数据分析,从了解你的数据开始,数据探索性分析工具包pandas-profiling


    身处大数据时代,每天接收到海量数据,例如高通量测序产生的一个样品的原始fastq文件就高达数十甚至上百GB,然而,对我们来说,真正感兴趣的只是最终产生的excel表格形式的数据。如何从这个excel表格中找到我们感兴趣的数据及规律似乎更加重要,因为这一步是“智慧的一步”,有助于我们更好地了解生物发生、发展的规律。


    0d756b6b315e0178254ef9d2c4c3c2b6.jpeg

    图1. 数据-信息-知识-见解-智慧


    数据分析第一步:探索性数据分析,了解你的数据

    当我们拿到数据(一般是excel表格)后,需要先对数据有个大概地了解,例如一般需要了解下:

    1,每一列存储的是什么数据,是数值列(例如表达量fpkm)还是字符列(例如基因名)

    2,数值列的数值范围是多少,最大值,最小值是多少,有没有缺失值

    3,字符列有没有重复条目,最频繁出现的是哪个条目

         4,数值列间是否存在相关性等等


    pandas_profiling简介

    工欲善其事必先利其器,pandas_profiling就是这样一款工具,pandas_profiling基于pandas的DataFrame数据类型,可以简单快速地进行探索性数据分析。


    对于数据集的每一列,pandas_profiling会提供以下统计信息:

    1、概要:数据类型,唯一值,缺失值

    2、分位数统计:最小值、最大值、中位数、Q1、Q3、最大值,值域,四分位

    3、描述性统计:均值、众数、标准差、绝对中位差、变异系数、峰值、偏度系数

    4、最频繁出现的值,直方图/柱状图

    5、相关性分析可视化:突出强相关的变量,Spearman, Pearson等矩阵相关性热图

    并且这个报告可以导出为HTML,非常方便查看。


    安装与使用

    安装:

    pip install pandas - profiling

    使用:

    # 导入相关库import pandas as pdimport pandas_profiling as pp# 读取数据集data = pd.read_csv(‘data.csv’, sep=’\t’)report = pp.ProfileReport(data)report.to_file('report.html')


    让我们以表达谱表格为例,探索下这个包的神奇之处吧!

    0b9b85c121a53d8d264d69e9cf78a9b3.jpeg

    图2.表达谱示例数据


    运行以上代码后,数据结果在report.html中

    18376e524c6f48439f3479c15ca34b97.jpeg

    图3. 数据概览


    总结了数据的基本信息,包括行数,列数,是否有缺失值

    21d2548178e2382c57138de7e472f43b.jpeg

    图4. 分类变量(前两列)的统计


    我们的数据前两列是ensembl _id 和gene _name ,图4中提供了每个id的统计信息,包括distin ct id的个数及比例,缺失值的个数及比例。从中可以看出,ensembl_ id 是唯一的,而gene _name 是有两个重复的:T MSB15B 和M ATR3 。

    b70a41948109bb126133e0733b587f7f.jpeg

    图5. 数值变量(最后6列)的统计结果


    提供了缺失值个数及比例,inf个数及比例,平均值,最小值,最大值,0值的个数和比例,负值的个数和比例等,同时提供了histogram图等。点击“Toggle details”按钮可以看出数据详情,提供了更多的统计量,histogram,相同值的个数,极值等信息。

    4c62d22f144390934d2bff500dc56240.jpeg

    图6. sample1列的详细的统计结果


    以上是针对单列的,同时还提供了多列的相关性信息及热图。包括Spearman、Pearson等,可以从总体上看出我们数据之间的联系。

    a8d8315545b164ac4ffab566361b759f.jpeg

    图7. 数值变量相关性


    最后,还提供了一些“Alerts”信息,也就是对各列的总结。

    76518a8de70681e28a5bf741b671b214.jpeg

    图8. Alert信息(部分)


    熟悉python的小伙伴可以试试这个包,几行代码就可以对自己的数据进行探索性分析。 微生信平台也提供了在线版本供大家使用,其目的是为了让大家更好地了解自己的数据,以便更方便地在微生信网站进行作图和分析。 以带标注的火山图为例。 首先我们使用panda s_profiling 小工具检查下我们的输入。 https://www.bioinformatics.com.cn/basic_online_pandas_profiling_analysis_report_t012

    ffde6620c1d2bc44446fc648ce088ae4.jpeg

    图9. 上传页面


    将右侧例子右键另存为txt,名字必须英文。

    然后在左侧“选择文件”,点击提交按钮。约10s后会返回结果页面。

    ad8d7edef3c93ab4589fee9f2feef162.jpeg

    图10. 输出页面


    下载并打开结果报告

    ba2c46c78a7f1a5f88f3de095bf98742.jpeg

    6659334769567f4c3ad33871484bc02e.jpeg

    图11. 结果报告示例


    该工具可以很方便地帮助我们检查数据中是否异常,例如基因名重复,p值> 1 等,如果有,则需要对数据进行校对后再进行绘图和分析。 注:由于这个程序计算量较大,仅提供了粘贴方式的上传数据方式。感兴趣的小伙伴也可以试试本地python版,几行代码就可以对数据进行探索性分析。


    微生信助力发文章,谷歌引用620+,知网引用450+
  • 相关阅读:
    SpringBoot实战系列之发送短信验证码
    拒绝水文!八大排序(三)【适合初学者】快速排序
    哪些重生奇迹mu地图适合刷玛雅宝石?
    数字化时代——如何快速实现数字化转型并进入低代码赛道
    QT webengine显示HTML简单示例
    pytest运行时参数说明,pytest详解,pytest.ini详解
    一文详解微服务架构
    四十三、Fluent增强收敛性-伪瞬态计算
    一文详解DevExpress的HTML & CSS模板如何实现集合渲染
    Docker 镜像常用命令总结
  • 原文地址:https://blog.csdn.net/weishengxin_/article/details/126843849