首页 > 解决方案 > 为什么在合并这两个数据帧时,其中一列充满了 NAN?

问题描述

我想合并两个数据框。它们具有相同的行和不同的列。有一列匹配:“ID”。

数据框 1 有 17 列。数据框 2 有 2 列。

我想用 DF1 的 17 列和 DF2 的一列创建一个 Dataframe 3。

例如:

DF1。

ID    COL1

051    D
041    A
039    Z
031    H
021    H
074    M
021    M
044    I
025    N
030    N
008    N
073    N
030    N
020    K

DF2。

ID     MONTH

051      07
041      07
039      09 
031      10
021      09
074      01
021      02
044      01
025      10
030      03
008      03
073      03
030      03
020      03

现在我使用此代码进行合并

df3 = df1.merge(df2, left_on= ["ID",df1.index], right_on = ["ID", df2.index], how = "left").drop('key_1',1 )

结果是

DF3。

 ID     MONTH     COL1
051      07        nan
041      07        nan
039      09        nan
031      10        nan
021      09        nan
074      01        nan
021      02        nan
044      01        nan
025      10        nan
030      03        nan
008      03        nan
073      03        nan
030      03        nan
020      03        nan

这是怎么回事?

标签: pythonpandas

解决方案


pd.merge如果您要加入的两个列名相同,请尝试使用此方法

df3 = pd.merge(df1,df2, on=["ID"],how = "left")
df3.drop_duplicates(subset=["ID"],inplace=True)

推荐阅读