首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用pandas跳过使用"#“声明的行

使用pandas跳过使用"#“声明的行
EN

Stack Overflow用户
提问于 2021-01-20 17:00:09
回答 1查看 56关注 0票数 1

我有一个很大的数据集,像这样:

代码语言:javascript
复制
##fileformat=VCFv4.2
##fileDate=20201231
##source=PLINKv1.90
##contig=<ID=1,length=188260454>
##contig=<ID=10,length=85155382>
##contig=<ID=11,length=61676533>
##contig=<ID=12,length=36989714>
##contig=<ID=13,length=43784426>
##contig=<ID=14,length=94600040>
##contig=<ID=15,length=92851205>
##contig=<ID=16,length=88959756>
##contig=<ID=17,length=80722365>
##contig=<ID=18,length=82634671>
##contig=<ID=19,length=62678559>
##contig=<ID=2,length=121349915>
##contig=<ID=20,length=65336538>
##contig=<ID=3,length=121351672>
##contig=<ID=4,length=109462228>
##contig=<ID=5,length=96758658>
##contig=<ID=6,length=87227659>
##contig=<ID=7,length=100781181>
##contig=<ID=8,length=97562725>
##contig=<ID=9,length=85788908>
##contig=<ID=21,length=58983846>
##contig=<ID=22,length=50925167>
##contig=<ID=23,length=55555792>
##contig=<ID=24,length=48279991>
##contig=<ID=25,length=40282582>
##contig=<ID=26,length=43147527>
##contig=<ID=27,length=40254630>
##contig=<ID=28,length=47348126>
##contig=<ID=29,length=34775913>
##contig=<ID=30,length=31395421>
##contig=<ID=31,length=26000291>
#CHROM  POS ID  REF ALT QUAL    FILTER  INFO    FORMAT  A1  A2  A3  A4
1   235 1   A   C   .   .   PR  GT  1|1 1|1 0|0 0|1
1   1000    2   G   C   .   .   PR  GT  1|1 0|1 0|1 1|1
1   1256    3   T   G   .   .   PR  GT  1|1 1|1 0|1 1|1
1   5000    4   T   A   .   .   PR  GT  0|1 0|0 0|1 1|1
1   6234    5   A   T   .   .   PR  GT  0|1 1|1 1|0 0|1
1   77453   6   A   C   .   .   PR  GT  1|0 1|0 1|0 1|0
1   84004   7   C   G   .   .   PR  GT  0|1 1|0 0|1 0|0
1   123658  8   A   T   .   .   PR  GT  1|1 0|0 1|1 0|0
1   432567  9   T   A   .   .   PR  GT  0|1 1|1 0|0 0|0
1   567432  10  A   G   .   .   PR  GT  0|0 1|1 0|1 1|1
1   1234542 11  C   A   .   .   PR  GT  0|1 0|0 0|0 0|0

要读取该数据,我必须使用以下命令:

代码语言:javascript
复制
snp = pd.read_csv("Imputed.vcf",delimiter=r"\s+",header=0,skiprows=35)

实际上,我想跳过带hashtagged的行(行包含"#"),不计算这些行。这种情况下有什么解决办法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-20 17:04:20

如果需要删除所有以#开头的行,请使用comment='#'

代码语言:javascript
复制
snp = pd.read_csv("Imputed.vcf", sep=r"\s+",comment='#', header=None)

如果需要包含2个或更多字符的注释,现在不支持。

可能的想法是预处理:

代码语言:javascript
复制
import csv

#preprocessing
def get_row():
    skipped = []
    with open('Imputed.vcf', 'r') as csvfile:
        reader = csv.reader(csvfile)
        for i, row in enumerate(reader):
            if row[0].strip()[:2] == '##':
                skipped.append(i)
    return skipped 
                

skip = get_row()
print (skip)

snp = pd.read_csv("Imputed.vcf", sep=r"\s+",skiprows=skip) 
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65806193

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档