Python 合并两个数据帧会删除一些行

Python 合并两个数据帧会删除一些行,python,pandas,dataframe,merge,Python,Pandas,Dataframe,Merge,我有两个数据帧,如下所示: #一, #二, 这些不是整个数据帧,只是头部 我想做的是根据第一列合并两个文件,因此我执行了以下命令: df1 = pd.read_csv('human_conversion_by_gene_symbol', sep='\t') df2 = pd.read_csv('human_conversion_transcript', sep='\t') df3 = df1.merge(df2, on=['Approved symbol']) df3.to_csv('mer

我有两个数据帧,如下所示:
#一,

#二,

这些不是整个数据帧,只是头部

我想做的是根据第一列合并两个文件,因此我执行了以下命令:

df1 = pd.read_csv('human_conversion_by_gene_symbol', sep='\t')
df2 = pd.read_csv('human_conversion_transcript', sep='\t')

df3 = df1.merge(df2, on=['Approved symbol'])

df3.to_csv('merged_human_conversion', sep='\t')
问题从现在开始,我似乎找不到在原始数据帧中找到的一些值。
例如,我正在搜索
MIR4430
(属于第一列),我可以在
df1
中找到它,但不能在合并的数据帧中找到它。

merge不应该接受我指定的列中元素的并集吗?

您可以使用传递给
pd.merge
()的
how
参数定义合并类型。默认情况下,它是
内部的
。如果需要联合,请设置
how='outer'

merge
命令默认情况下使用
internal
合并(仅包括两个数据帧中存在的项)

您需要使用
outer
merge进行联合

df3=df1.merge(df2,on=['Approved symbol'],how='outer')
参考文件

Approved symbol RefSeq IDs  Ensembl gene transcript ID
DDX11L1 NR_046018   ENST00000456328
DDX11L1     ENST00000456328
DDX11L1     ENST00000518655
OR4F5   NM_001005484    ENST00000335137
DQ597235        n/a
DQ599768        n/a
df1 = pd.read_csv('human_conversion_by_gene_symbol', sep='\t')
df2 = pd.read_csv('human_conversion_transcript', sep='\t')

df3 = df1.merge(df2, on=['Approved symbol'])

df3.to_csv('merged_human_conversion', sep='\t')