【发布时间】:2021-05-28 08:07:09
【问题描述】:
我想结合df1和df2得到df3。
df1 和 df2 将具有完全相同的 index 和 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 + df2、df1 | df2,并查看了merge(),但没有运气。
提前致谢。
编辑
假设我先执行replace(0,magicNumber),然后执行replace(np.NaN, 0)。然后我可以添加两个数据框,然后执行replace(magicNumber, 0)。但这是非常丑陋、令人困惑的代码。如果有更清洁、泛泛/pythonic 的解决方案,请告诉我。谢谢。
【问题讨论】:
-
你可能想看看这个帖子Pandas join/merge/concat two dataframes
-
@SidKwakkel 谢谢,但与我遇到的问题不同。
-
@kfmfe04 让我知道是否需要进一步澄清。如果可以,请考虑接受答案。谢谢!
标签: python dataframe merge nan