擅长:python、mysql、java
<p>这是一种使用<code>numpy</code>和<code>intertools.chain</code>的方法。在</p>
<p>其思想是首先将逗号分隔的字段拆分为列表。然后构造一个结果数据框,重复或链接值是必要的。在</p>
<pre><code>import numpy as np
from itertools import chain
df['exonStart'] = df['exonStart'].str.split(',')
df['exonEnds'] = df['exonEnds'].str.split(',')
lens = list(map(len, df['exonStart']))
res = pd.DataFrame({'chrom': np.repeat(df['chrom'], lens),
'exonStart': list(chain.from_iterable(df['exonStart'])),
'exonEnds': list(chain.from_iterable(df['exonEnds'])),
'name': np.repeat(df['name'], lens)})
print(res)
# chrom exonEnds exonStart name
# 0 chr1 110 100 gen1
# 0 chr1 210 200 gen1
# 0 chr1 310 300 gen1
# 1 chr1 600 500 gen2
# 1 chr1 800 700 gen2
# 2 chr2 55 50 gen3
# 2 chr2 65 60 gen3
# 2 chr2 75 70 gen3
# 2 chr2 85 80 gen3
</code></pre>
<p>注意:您可能希望在此过程结束时将数字列转换为<code>int</code>。在</p>