Pandas - 读取数据(两行标题,索引列)

时间:2018-01-18 20:55:12

标签: python pandas multi-index

我有一个如下所示的数据文件(来自TCGA的miRNA-seq数据):

A X X X Y Y Y Z Z Z
B a b c a b c a b c
0
1   regular 5x9
2   data matrix
3
4

A描述了第一个标题行,B描述了第一列。 我想使用pandas.read_csv返回一个DataFrame,以便我可以通过df[0]之类的内容访问行,并通过类似df['X']['a']的内容访问列,最终删除选定的行和/或列。 在我的搜索中,我发现MultiIndex可以帮助我,但是df = pandas.read_csv("datafile", header=[0, 1]); print(df.index)确实会返回Index

感谢您提出任何建议。

编辑:一些示例数据(以制表符分隔)

Hybridization REF   TCGA-2V-A95S-01A-11R-A37G-13    TCGA-2V-A95S-01A-11R-A37G-13    TCGA-2V-A95S-01A-11R-A37G-13    TCGA-2Y-A9GS-01A-12R-A38M-13    TCGA-2Y-A9GS-01A-12R-A38M-13    TCGA-2Y-A9GS-01A-12R-A38M-13    TCGA-2Y-A9GT-01A-11R-A38M-13    TCGA-2Y-A9GT-01A-11R-A38M-13    TCGA-2Y-A9GT-01A-11R-A38M-13
miRNA_ID    read_count  reads_per_million_miRNA_mapped  cross-mapped    read_count  reads_per_million_miRNA_mapped  cross-mapped    read_count  reads_per_million_miRNA_mapped  cross-mapped
hsa-let-7a-1    17377   4045.749542 N   47187   7077.368096 N   31765   8956.551210 N
hsa-let-7a-2    34913   8128.517796 N   94766   14213.530526    Y   64148   18087.355487    N
hsa-let-7a-3    17496   4073.455371 N   47683   7151.760928 N   31782   8961.344580 N
hsa-let-7b  33546   7810.249993 N   46089   6912.683963 N   64948   18312.925799    N
hsa-let-7c  1349    314.077006  N   12185   1827.573913 Y   14075   3968.627681 N
hsa-let-7d  1735    403.946335  N   1763    264.424523  N   1176    331.588359  N

1 个答案:

答案 0 :(得分:1)

试试这个:

df=pd.read_csv('zhoop.csv', header=[0,1], index_col=0)

注意:为了索引行,您将使用df.loc [rownum],而不仅仅是df [rownum]。