pandas :带有列表的记录以分隔行 [英] pandas: records with lists to separate rows
本文介绍了 pandas :带有列表的记录以分隔行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个像这样的Python Pandas DataFrame(用于NCBI RefSeq的UCSC模式):
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
chr1 500,700 600,800 gen2
chr2 50,60,70,80 55,65,75,85 gen3
我想将exonStarts和exonEnds中的值配对,并将它们放在单独的行中(保留其余的相应信息):
and I'd like to pair values from exonStarts and exonEnds and put them as separate rows (keeping the rest of corresponding information):
chrom exonStart exonEnds name
chr1 100 110 gen1
chr1 200 210 gen1
chr1 300 310 gen1
chr1 500 600 gen2
chr1 700 800 gen2
chr2 50 55 gen3
chr2 60 65 gen3
chr2 70 75 gen3
chr2 80 85 gen3
我当时正在考虑将python/pandas函数组合使用:
I was thinking to use combinations of python/pandas functions as:
压缩,拆分,合并,合并
zip, split, melt, concat
但是它对我不起作用
推荐答案
在理解中使用zip
和split
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
这篇关于 pandas :带有列表的记录以分隔行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文