如何将两个pandas数据框连接|合并,并保留来自具有优先级的DataFrame的行,如果特定列值匹配。是否有一种类型的连接可以描述这种情况?
import pandas as pd
Cars = {'Brand': ['Honda Civic','Toyota Corolla','Ford Focus','Audi A4'],
'Price': [22000,25000,27000,35000]}
Cars2 = {'Brand': ['Honda CRV','Toyota Celica','Ford Explorer','Audi A8'],
'Price': [40000,25000,37000,100000]}
df_priority = pd.DataFrame(Cars, columns= ['Brand', 'Price'])
df2 = pd.DataFrame(Cars2, columns= ['Brand', 'Price'])
# df_merge_with_priority = Merge dataframes and keep rows from df_priority if price matches
df_merge_with_priority 期望输出结果:
品牌: 本田CRV, 本田Civic, 丰田Corolla, 福特Explorer, 福特Focus, 奥迪A4, 奥迪A8
价格: 40000, 22000, 25000, 27000, 37000, 35000, 100000
请注意,丰田Corolla和丰田Celica的价格相同,但在这种情况下我们只想保留Corolla。有什么关于如何设置优先级的想法吗?
pd.concat([df_priority, df2]).groupby(['Price']).aggregate('max')
。 - vb_risespd.concat((df_priority,df2)).sort_index().drop_duplicates('Price')
吗? - anky