我有两个数据框;第一个是空,日期作为行,产品作为列。第二个包含特定项目的广告资源的值。
后者中的行和列也出现在第一个中:
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 的行数
答案 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值