如何识别重复的ID并分配新ID?

2024-04-29 04:52:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个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

Tags: 数据函数df列表序列标识符dnarow
3条回答

如果您的解析算法正常工作,我将使用字典结构来完成此任务。在Python中,您可以轻松检查列表中是否存在项:

     for each item in parent_list:
       if item is in plasmid_list:
          # do thing

您可以将^{}.apply(list)一起使用:

df = pd.DataFrame({'Oligo_sequence':['ATG', 'ATG', 'CAG'], 'Plasmid':['Plasmid A', 'Plasmid B', 'Plasmid C']})

print(df.groupby('Oligo_sequence')['Plasmid'].apply(list).reset_index())

印刷品:

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

groupbyagg与列表一起使用:

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

输出:

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

相关问题 更多 >