我有一个pandas数据帧和一个列表列表(每个子列表有3个项[name,seq,qual])。我想检查列表列表中的第一个项目是否与df的name列匹配,如果匹配,我想创建新的列,将项目[1]和项目[2]添加到dataframe。你知道吗
要设置它:
reads = [['read1', 'ACTG', 'FFFF'], ['read2', 'TTTT', 'FF:F'], ['read3', 'ATGC', 'F:FF']]
df = pd.DataFrame(reads, columns=['ReadName', 'Sequence1', 'Qual1'])
reads2 = [['read3', 'CGCG', 'F::F'], ['read1', 'TGTG', 'F:FF'], ['read2', 'AAAA', 'FFFF']]
我试过的:
for item in reads2:
if item[0] in df['ReadName']:
df['Sequence2'] = item[1]
df['Qual2'] = item[2]
但是最终的df看起来像:
ReadName Sequence1 Qual1 Sequence2 Qual2
0 read1 ACTG FFFF CGCG F::F
1 read2 TTTT FF:F CGCG F::F
2 read3 ATGC F:FF CGCG F::F
因此,它只是将列表列表中的第一项添加到df中的所有行中。我希望它看起来像:
ReadName Sequence1 Qual1 Sequence2 Qual2
0 read1 ACTG FFFF TGTG F:FF
1 read2 TTTT FF:F AAAA FFFF
2 read3 ATGC F:FF CGCG F::F
使用.loc更新行
使用左连接:
看起来像:
相关问题 更多 >
编程相关推荐