数据透视表(pivot table)是一种交互式的表,可以进行某些计算,如求和与计数等。所进行的计算与数据跟数据透视表中的排列有关。
之所以称为数据透视表,是因为可以动态地改变它们的版面布置,以便按照不同方式分析数据,也可以重新安排行号、列标和页字段。每一次改变版面布置时,数据透视表会立即按照新的布置重新计算数据。另外,如果原始数据发生更改,则可以更新数据透视表。
传统的数据透视表一般是在excel中操作的,但excel操作比较麻烦,且excel读取大数据容易造成电脑卡的现象。而使用python的pandas包,可以方便的处理excel数据,这里,我们介绍excel透视的替代方案,pandas的groupby函数。
in [1]:
import pandas as pd
本次分析数据存放在当前运行目录下的data/asv目录下,df.sample(5)随机显示5行读取到的数据。
in [2]:
df = pd.read_table('./data/asv/subsample_asv.tax.xls') df.sample(5)out[2]:
1.按照门水平进行透视分析,并提取样品列进行求和。
to_excel("data/asv/phylum.xlsx",index=true) 使得输出数据保存至data/asv目录下的phylum.xls文件。
in [3]:
df.groupby('phylum').sum()out[3]:
in [4]:
df.groupby('phylum').sum().to_excel("data/asv/phylum.xlsx",index=true)
excel输出文件如下图所示:
2.按照门和属进行透视,并输出到data/asv目录下的phylum_1.xlsx文件。
in [5]:
df.groupby(['phylum','genus']).sum().to_excel("data/asv/phylum_1.xlsx",index=true)
excel输出文件如下图所示:
使用agg对每列进行统计计算
in [6]:
df.groupby('phylum').agg(['mean','std','count','max'])out[6]:
in [7]:
df.groupby(['phylum','genus']).agg(['mean','std','count','max'])out[7]:
往期相关链接:
1、r基础篇
;
;
;
;
2、r进阶
;
;
;
;
;
;
;
;
;
3.python基础篇
;
4、数据提交
;
;
;
;
5、表达谱分析
;;
;
6、医学数据分析
;;
;
;
天昊客户服务中心
手机/微信号:18964693703
【本群将为大家提供】
分享生信分析方案
提供数据素材及分析软件支持
定期开展生信分析线上讲座
qq号:1040471849
作者:大熊
审核:有才
来源:天昊生信团