Обновить значения в кадре данных путем слияния - PullRequest
0 голосов
/ 19 ноября 2018

У меня есть два кадра данных;первый - пустой , с датами в виде строк и продуктами в виде столбцов.Второй содержит значение инвентаря для определенного предмета .

Строки и столбцы, которые находятся в последнем, появляются и в первом:

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                 

Я хотел бы обновить значения в inventory_df , получивследующий фрейм данных:

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

    ...

Я пытался с помощью метода redoundant, конкатенируя, а затем удаляя дубликаты, но когда я использую pd.concat, он вызывает:

TypeError: cannot concatenate object of type "<class 'list'>"; only pd.Series, pd.DataFrame, and pd.Panel (deprecated) objs are valid

Как объединитьпервые два кадра для создания обновленного?

Примечание: размер updated_df должен совпадать с inventory_df и nrows final_inspect меньше nrows inventory_df .

1 Ответ

0 голосов
/ 19 ноября 2018

Использование df.update() -

inventory_df.update(final_inspect)

Выход

    dt_op   Prod_1  Prod_2
0   10/09/18    10  0
1   11/09/18    2   0
2   12/09/18    5   0

Это по умолчанию реализует join='left, где выможет позаботиться о несоответствии значений n по вашему желанию

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...