我有df1,这是我使用的滚动数据集,每天更新。
我有df2,其中包含id_col和signal_col。我想根据常见的id_col值更新df1中的signal_cols。
在sql中,它将类似于:
INSERT OVERWRITE TABLE my_table
SELECT
COALESCE(my_table_update.signal_col, my_table.signal_col) AS signal_col,
my_table.*
FROM my_table
LEFT OUTER JOIN my_table_update
ON my_table.id_col = my_table_update.id_col
pandas.dataframe.update会覆盖整个数据帧 pandas.dataframe.combine_first只添加来自df2的空值。
我是否必须遍历每一行,并手动更新列值?
答案 0 :(得分:0)
更新仅从右向左覆盖非na值。首先组合相反,它从右边开始填充na值。因此,更新不会覆盖整个帧只是非na值