首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何识别重复并分配新的ID?

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

Stack Overflow用户
提问于 2020-01-17 09:00:18
回答 4查看 63关注 0票数 1

我有一个DNA寡核苷酸列表,用于排序分配了许多重复序列。但是,我需要它们与要使用它们的质粒的标识符配对。

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

代码语言:javascript
复制
  Oligo_sequence   Plasmid
0 "ATG"           "Plasmid A"
1 "ATG"           "Plasmid B" 
2 "CAG"           "Plasmid C" 

变成:

代码语言:javascript
复制
  Oligo_sequence    Plasmid
0 "ATG"           ["Plasmid A","Plasmid B"]
1 "CAG"           ["Plasmid C"] 

我认为类似于此的函数可能会起作用。但我不知道如何识别复制品。

代码语言:javascript
复制
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
EN

回答 4

Stack Overflow用户

发布于 2020-01-17 11:00:47

对list使用groupbyagg

代码语言:javascript
复制
df.groupby('Oligo_sequence')['Plasmid'].agg(list)

输出:

代码语言:javascript
复制
"ATG"    ["Plasmid A", "Plasmid B"]
"CAG"                 ["Plasmid C"]
Name: Plasmid, dtype: object
票数 3
EN

Stack Overflow用户

发布于 2020-01-17 09:09:44

您可以在.apply(list)中使用pd.groupby

代码语言:javascript
复制
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())

打印:

代码语言:javascript
复制
  Oligo_sequence                 Plasmid
0            ATG  [Plasmid A, Plasmid B]
1            CAG             [Plasmid C]
票数 1
EN

Stack Overflow用户

发布于 2020-01-17 09:17:06

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

代码语言:javascript
复制
     for each item in parent_list:
       if item is in plasmid_list:
          # do thing
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59779890

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档