根据 Date 列将 df1 中的列添加到 df2 中,如果缺少 df1 [Date] 条目,则填写 na

Add column from df1 into df2 based on the Date column and fill na if df1 [Date] entries are missing

我的数据框 df1 有 850 行和列名 ['Date', 'A']。 我还有 df2 900 行和列名 ['Date', 'B', 'C', 'D'].

它们的行数不同是因为 df1 缺少一些 'Date' 条目。但是,df1['Date'] 中的所有条目都在 df2['Date'].

问题: 我想在相同的 ['Date'] 行的基础上将 df1['A'] 合并到 df2。合并后,我希望结果 df2['A']df1.

中缺少 ['Dates'] 的所有行反映 'na'

我试过 df2=pd.merge(df2, df1, on="Date") 但结果 df2 有 850 行,这似乎是 df1 和 df2 之间不匹配的日期被删除了。相反,我希望 post-合并结果 df2 为 900 行,并且不匹配的日期行应在 df2['A']`.[=24= 中显示 'na' ]

如何实现?

使用 left 加入而不是 inner 加入(默认行为)

new_df = pd.merge(df2, df1, on="Date", how='left')

用零填充NA(正如OP在评论中所要求的),

new_df.fillna(0, inplace=True)
# new_df['column'] = new_df['column'].astype(np.float64) # to convert column to float