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。