我有一个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发布于 2020-01-17 11:00:47
对list使用groupby和agg:
df.groupby('Oligo_sequence')['Plasmid'].agg(list)输出:
"ATG" ["Plasmid A", "Plasmid B"]
"CAG" ["Plasmid C"]
Name: Plasmid, dtype: object发布于 2020-01-17 09:09:44
您可以在.apply(list)中使用pd.groupby
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]发布于 2020-01-17 09:17:06
如果您的解析算法有效,我将使用字典结构来完成此任务。在Python中,您可以轻松地检查列表中是否存在某个项目:
for each item in parent_list:
if item is in plasmid_list:
# do thinghttps://stackoverflow.com/questions/59779890
复制相似问题