[英]Python Pandas: Concatenate and update dataframe values from another dataframe
我有这 2 个数据框。
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
这意味着:
谢谢您的帮助。
这是一个基于合并的解决方案:
Product
上的两个 DataFrame 从df1
获取Quantity
值。 来自df1
的Price
被降低,这样这些价格就不会添加到最终的 DataFrame 中。这是一个外部合并,以确保结果包含来自df1
和df2
的产品。-1
替换缺失的价格并根据产品进行排序。final = df2.merge(df1.drop('Price', axis=1), on='Product', how='outer')
final['Price'].fillna(-1, inplace=True)
final.sort_values('Product', inplace=True)
结果:
Product Price Quantity
0 product1 200.0 10.0
1 product2 1000.0 5.0
3 product3 -1.0 20.0
2 product4 50.0 NaN
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.