生物システム内の相互作用するパートナーを表す2つのデータフレームの列があるため、gene_Aがgene_Bと相互作用する場合、 'gene_pair'列のエントリは{gene_A、gene_B}になります。私は、内側をしたい参加、しかししよう:私は私がマージすることはできません言うことができるようにセットの列に2つのパンダデータフレームをマージする方法
pd.merge(df1, df2, how='inner', on=['gene_pair'])
がそう限り、
TypeError: type object argument after * must be a sequence, not itertools.imap
が、私は順不同ペアにマージする必要があり、エラーがスローされます遺伝子名を持つ2つの個別の列の組み合わせ。このマージを達成する別の方法がありますか?
いくつかの例のDFS:
gene_pairs1 = [
set(['gene_A','gene_B']),
set(['gene_A','gene_C']),
set(['gene_D','gene_A'])
]
df1 = pd.DataFrame({'r_name': ['r1','r2','r3'], 'gene_pair': gene_pairs1})
gene_pairs2 = [
set(['gene_A','gene_B']),
set(['gene_F','gene_A']),
set(['gene_C','gene_A'])
]
df2 = pd.DataFrame({'function': ['f1','f2','f3'], 'gene_pair': gene_pairs2})
pd.merge(df1,df2,how='inner',on=['gene_pair'])
と、私は 'F3' でラインアップする 'F1' と 'R2' とまでエントリーR1 '' 行をしたいと思います。
あなたはこれを示すサンプルDF1とDF2を提供することはできますか? –