Python 合并两个没有重复行的数据帧

Python 合并两个没有重复行的数据帧,python,pandas,merge,Python,Pandas,Merge,我有两个数据帧: test1 = pd.DataFrame({'Gene':['WASH7P', 'WASH7P', 'VCZ'], 'TPM':[10.034, 0.234000, 2.345]}) test2 = pd.DataFrame({'Gene':['WASH7P', 'WASH7P', 'btt'], 'TPM':[1.12345, 2.300, 0.00000]}) 我想将它们合并到一个数据帧中。我试过: df = pd.merge(test1,test2, on = ['Ge

我有两个数据帧:

test1 = pd.DataFrame({'Gene':['WASH7P', 'WASH7P', 'VCZ'], 'TPM':[10.034, 0.234000, 2.345]})
test2 = pd.DataFrame({'Gene':['WASH7P', 'WASH7P', 'btt'], 'TPM':[1.12345, 2.300, 0.00000]})
我想将它们合并到一个数据帧中。我试过:

df = pd.merge(test1,test2, on = ['Gene'],how = 'outer')
导致:

    Gene    TPM_x   TPM_y
0   WASH7P  10.034  1.12345
1   WASH7P  10.034  2.30000
2   WASH7P  0.234   1.12345
3   WASH7P  0.234   2.30000
4   VCZ     2.345   NaN
5   btt     NaN     0.00000
但是,存在重复的行。我已尝试删除重复项(),但这不起作用。实际数据帧要大得多,超过30000行

所需输出:

    Gene    TPM_x   TPM_y
    WASH7P  10.034  1.12345
    WASH7P  0.234   2.30000
    VCZ     2.345   NaN
    btt     NaN     0.00000

如果您试图删除基于列“TPM\u x”的重复项,任何帮助都将非常有用。

用这个

df = pd.merge(test1,test2, on = ['Gene'],how = 'outer').drop_duplicates(keep="first", subset = 'TPM_x')

这些不是真正的重复-TPM_x和TPM_y的值在“重复”行中不同。您应该尝试一下。我发现这导致了正确的格式,除了TPM_y,其中WASH7P对两行都只有1.2345。