pandas: records with lists to separate rows

前端 未结 3 1176
花落未央
花落未央 2021-01-16 07:05

I have a Python Pandas DataFrame like this (UCSC schema for NCBI RefSeq):

chrom   exonStart     exonEnds      name
chr1    100,200,300   110,210,310   gen1
c         


        
3条回答
  •  遥遥无期
    2021-01-16 08:06

    Use a zip and split within a comprehension

    pd.DataFrame([
        [c, s, e, n]
        for c, S, E, n in df.itertuples(index=False)
        for s, e in zip(S.split(','), E.split(','))
    ], columns=df.columns)
    
      chrom exonStart exonEnds  name
    0  chr1       100      110  gen1
    1  chr1       200      210  gen1
    2  chr1       300      310  gen1
    3  chr1       500      600  gen2
    4  chr1       700      800  gen2
    5  chr2        50       55  gen3
    6  chr2        60       65  gen3
    7  chr2        70       75  gen3
    8  chr2        80       85  gen3
    

提交回复
热议问题