熊猫,合并2个数据集

2024-05-28 23:36:22 发布

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

我实际上有两个数据帧,一个是:

seq1_id seq2_id dN  dS  Dist1 Dist_brute  kingdom
seq1    seq2    45  56  23    455         eucaryota
seq6    seq9    34  43  34    453         procaryota
seq3    seq98   32  34  21    90          Virus
seq21   seq87   32  12  35    211         Virus

另一种是:

seq1_id seq2_id dN  dS  Dist1 Dist_brute
seq1    seq2    45  56  23    455
seq4    seq12   78  45  32    789
seq3    seq98   32  34  21    90          
seq21   seq87   32  12  35    211 
seq45   seq90   21  23  12    123
seq6    seq9    34  43  34    453  

我想做的是得到一个新的数据帧,比如:

seq1_id seq2_id dN  dS  Dist1 Dist_brute   kingdom
seq1    seq2    45  56  23    455          eucaryota
seq4    seq12   78  45  32    789          NaN
seq3    seq98   32  34  21    90           Virus
seq21   seq87   32  12  35    211          Virus
seq45   seq90   21  23  12    123          NaN
seq6    seq9    34  43  34    453          procaryota

有人有主意吗? 谢谢:)


Tags: iddistdsdnbrutevirusseq2seq1
1条回答
网友
1楼 · 发布于 2024-05-28 23:36:22

对于我来说,在使用left联接的所有列合并时,忽略参数on

df = df2.merge(df1, how='left')

如果需要为merge定义列:

df = df2.merge(df1, on=['seq1_id','seq2_id','dN','dS','Dist1','Dist_brute'], how='left')

print (df)
  seq1_id seq2_id  dN  dS  Dist1  Dist_brute     kingdom
0    seq1    seq2  45  56     23         455   eucaryota
1    seq4   seq12  78  45     32         789         NaN
2    seq3   seq98  32  34     21          90       Virus
3   seq21   seq87  32  12     35         211       Virus
4   seq45   seq90  21  23     12         123         NaN
5    seq6    seq9  34  43     34         453  procaryota

相关问题 更多 >

    热门问题