如何解决合并两个数据框会删除一些行
我有两个数据框,如下所示:
#1
Approved symbol RefSeq IDs Ensembl gene ID
A1BG NM_130786 ENSG00000121410
A1BG-AS1 NR_015380 ENSG00000268895
A1CF NM_014576 ENSG00000148584
A1S9T
A2M NM_000014 ENSG00000175899
A2M-AS1 NR_026971 ENSG00000245105
#2
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')
问题从现在开始,我似乎找不到在原始数据框中找到的某些值。
例如,我正在搜索MIR4430
(属于第一列),并且能够在df1
中找到它,但不能在合并的数据框中找到它。
不合并应该在我指定的列内采用元素的并集吗?
解决方法
您可以使用传递到how
(https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.merge.html)的pd.merge
参数来定义合并类型。默认为inner
。如果需要联合,请设置how = 'outer'
。
merge
命令默认使用inner
合并(仅包括两个数据框中都存在的项目)。
您将需要使用outer
合并来进行合并
df3 = df1.merge(df2,on=['Approved symbol'],how='outer')
请参阅DataFrame.merge文档
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。