我有这2个 Dataframe 。
import pandas as pd
data1 = {
'Product': ['product1', 'product2', 'product3'],
'Price': [200, 300, 400],
'Quantity': [10, 5, 20],
}
df1 = pd.DataFrame(data1, columns= ['Product','Price','Quantity'])
print(df1)
data2 = {
'Product': ['product1','product2','product4'],
'Price': [200, 1000,50],
}
df2 = pd.DataFrame(data2, columns= ['Product','Price'])
DF1:
Product Price Quantity
0 product1 200 10
1 product2 300 5
2 product3 400 20
DF2:
Product Price
0 product1 200
1 product2 1000
2 product4 50
我搜索连接和更新,以获得此 Dataframe :
Product Price Quantity
0 product1 200 10
1 product2 1000 5
2 product3 -1 20
2 product4 50 NaN
这意味着:
- df2中的新产品(product4)必须添加可用信息(价格)
- 不在df2中的产品应保留,价格设置为-1
- df1和df2中的产品只需更新其价格(产品2)
- 所有其他产品保持不变。
谢谢你的帮助。
1条答案
按热度按时间gcuhipw91#
下面是一个基于合并的解决方案:
Product
上的两个 Dataframe ,从df1
获取Quantity
值。删除df1
中的Price
,以便不会将这些价格添加到最终 Dataframe 中。这是外部合并,以确保结果包含df1
和df2
中的产品。-1
替换缺少的价格并根据产品进行排序之外,上面的步骤几乎可以得到您想要的结果。结果: