2015-02-19 4 views
0

У меня есть df1, который является скользящим набором данных, который я использую, обновляется ежедневно.Pandas dataframe.update с ключевым индексом и индексом col для обновления

У меня есть df2, который содержит id_col и signal_col. Я хочу обновить signal_cols в df1 на основе общих значений id_col.

В SQL Server, это будет что-то вроде:

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 перезаписывает весь dataframe, в то время как pandas.dataframe.combine_first только добавляет аннулирует из df2.

Должен ли я выполнять итерацию по каждой строке и обновлять значения столбцов вручную?

ответ

0

Обновление только перезаписывает значения na na справа налево. Комбинация сначала делает наоборот, она заполняет na значения слева направо. Поэтому обновление не перезаписывает весь фрейм только значения na na

Смежные вопросы