如何组合两个数据框(相同的形状,包括 NaN)?

时间:2021-02-25 22:26:48

标签: python dataframe merge nan

我想将 dataset.clean1$Q11_22 <- revalue(dataset.clean1$Q11_22 , c("Never (zero occasions)" = "1"`) ? df1 结合起来得到 df2

df3df1 将具有完全相同的 df2index(相同的形状),包括一些 column。它们将没有重叠的值(没有歧义)。取值,如果它存在于任何一个中。

最直接的方法是什么?

np.NaN

我尝试了 df1 = pd.DataFrame({'A': [1.0, np.NaN], 'B':[np.NaN, np.NaN]}) df2 = pd.DataFrame({'A': [np.NaN, np.NaN], 'B':[np.NaN, 0.0]}) df3 = pd.DataFrame({'A': [1.0, np.NaN], 'B':[np.NaN, 0.0]}) df1 + df2df1 | df2,但没有成功。

提前致谢。

编辑

假设我先执行 merge(),然后执行 replace(0,magicNumber)。然后我可以添加两个数据帧,然后执行 replace(np.NaN, 0)。但这是非常丑陋、令人困惑的代码。如果有更干净的、混乱的/pythonic 解决方案,请告诉我。谢谢。

1 个答案:

答案 0 :(得分:1)

使用:df3 = df1.combine_first(df2)

查看文档here