У меня есть следующие фреймы данных:
print(inventory_df)
dt_op Prod_1 Prod_2 ... Prod_n
10/09/18 0 0 0
11/09/18 0 0 0
12/09/18 0 0 0
...
print(final_inspect)
dt_op Prod_1
10/09/18 10
11/09/18 2
12/09/18 5
print(updated_df)
dt_op Prod_1 Prod_2 ... Prod_n
10/09/18 10 0 0
11/09/18 2 0 0
12/09/18 5 0 0
...
Я пытаюсь обновить фрейм данных " inventory_df ", значения которого содержатся в "final_inspect", чтобы получить" updated_df"с:
final_inspect = pd.DataFrame(data = {'dt_op': inspect["dt_op"] , j: inventory})
final_inspect_1 = pd.DataFrame(data = {'dt_op':inventory_df.dt_op })
final_inspect_1 = final_inspect_1.merge(final_inspect, on = "dt_op", how = "left").fillna(0)
inventory_df = inventory_df.merge(final_inspect_1, on = ["dt_op", j], how = "outer").fillna(0)
inventory_df = inventory_df.drop_duplicates(subset=None, keep='first', inplace=False)
Решение громоздкое, но функция update из pandas не , кажется, работает (инвентаризация_df.update (final_inspect)).
Как я могу улучшить это решение, чтобы запустить его на нескольких (3000) элементах?
NB * Размер из updated_df должен быть таким же , как inventory_df , и nrows of final_inspect меньше, чем nrows ofinventory_df.