【发布时间】:2020-01-02 21:42:30
【问题描述】:
我想合并两个数据框。两者具有相同的列名,但行数不同。
较小数据框的值应替换其他数据框的值
到目前为止,我尝试使用 pd.merge
pd.merge(df1, df2, how='left', on='NodeID)
但我不知道如何告诉合并命令将正确数据框中的值用于列“X”和“Y”。
df1 = pd.DataFrame(data={'NodeID': [1, 2, 3, 4, 5], 'X': [0, 0, 0, 0, 0], 'Y': [0, 0, 0, 0, 0]})
df2 = pd.DataFrame(data={'NodeID': [2, 4], 'X': [1, 1], 'Y': [1, 1]})
结果应该如下所示:
df3 = pd.DataFrame(data={'NodeID': [1, 2, 3, 4, 5], 'X': [0, 1, 0, 1, 0], 'Y':[0, 1, 0, 1, 0]})
【问题讨论】:
-
df2.set_index('NodeID').combine_first(df1.set_index('NodeID')).reset_index()
标签: python pandas dataframe merge multiple-columns