繁体   English   中英

如何在 Python Pandas 中合并此数据帧?

[英]How to Merge this Data-frames in Python Pandas?

我有 3 个具有以下形状的数据框:
(34376, 13), (52389, 28), (16531, 14)

这是我们拥有的第一个 Dataframe: 在此处输入图像描述

这是我们拥有的第二个 Dataframe: 在此处输入图像描述

这是我们拥有的第三个 Dataframe: 在此处输入图像描述

现在,正如我提到的所有 Dataframes 的形状,主要任务是我们必须将其合并到 Accession Number \

DF1-具有我们想要的确切 34376 登录号。

DF2- 有大约 28000 个我们想要的 Accession。 这基本上意味着我们不需要该表的剩余 Accession。

DF3- 大约有 9200 个我们想要的 Accession

我们如何才能合并入藏号上的所有这 3 个 DF,以便我们得到 DF2、DF3 的额外列与入藏号上的 DF1 合并。 另外,我们可以看到DF2有52389列,所以如果DF2中有相同的Accession Numbers重复,我们还是要合并它,但是DF1的行应该重复,同时与DF2的额外行合并,与DF3相同。 DF2/DF3 中没有可用值但存在于 DF1 中的登录,行应变为 Null。

您可以简单地使用 pandas 合并function

pd.merge(pd.merge(df1,df2,on='ACCESSION_NUMBER'),df3,on='ACCESSION_NUMBER')

要么

df1.merge(df2,on='ACCESSION_NUMBER').merge(df3,on='ACCESSION_NUMBER')

要么

您可以使用functools库中的reduce class

reduce(lambda x,y: pd.merge(x,y, on='ACCESSION_NUMBER', how='outer'), [df1, df2, df3])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM