通过合并更新数据框中的值

时间:2018-11-19 12:31:32

标签: python pandas merge

我有两个数据框;第一个是,日期作为行,产品作为列。第二个包含特定项目的广告资源的

后者中的行和列也出现在第一个中:

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

    ...

我尝试了一种冗余方法,将其串联然后删除重复项,但是当我使用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 相同,并且 final_inspect 的行数小于 inventory_df 的行数

1 个答案:

答案 0 :(得分:0)

使用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,您可以根据需要处理不匹配的na值