首页 > 解决方案 > 如何识别重复并分配新 ID?

问题描述

我有一份 DNA 寡核苷酸列表供订购,其中包含重复序列。但是,我需要将它们与与哪个质粒一起使用的标识符配对。

换句话说,我需要这个数据框:

  Oligo_sequence   Plasmid
0 "ATG"           "Plasmid A"
1 "ATG"           "Plasmid B" 
2 "CAG"           "Plasmid C" 

成为:

  Oligo_sequence    Plasmid
0 "ATG"           ["Plasmid A","Plasmid B"]
1 "CAG"           ["Plasmid C"] 

我认为与此类似的功能可能会起作用。但我不知道如何识别重复项。

for index, row in df.iterrows():
    plasmidlist = [row[1]]
    if duplicate == True: #Is their a dublicate function I can use? 
        plasmidlist.append(duplicaterow[1])
        drop(dublicaterow)

    df.at[row,'Plasmid']= plasmidlist

标签: pythonpandasbiopython

解决方案


使用groupbyagg列表:

df.groupby('Oligo_sequence')['Plasmid'].agg(list)

输出:

"ATG"    ["Plasmid A", "Plasmid B"]
"CAG"                 ["Plasmid C"]
Name: Plasmid, dtype: object

推荐阅读