如何连接|合并具有优先级的两个熊猫数据帧,如果特定列值匹配,则将行与优先级数据帧保持隔离。是否有描述这种情况的联接类型?
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,本田思域,丰田卡罗拉,福特Explorer,福特福克斯,奥迪A4,奥迪A8
价格:40000、22000, 25000 ,27000、37000、35000、100000
请注意,丰田花冠和丰田Celica的价格如何相同,但是在这种情况下,我们只保留花冠。关于如何优先加入的任何想法?
答案 0 :(得分:1)
如果您要查找优先于df2的优先级,可以尝试:
pd.concat((df_priority,df2)).sort_index().drop_duplicates('Price') #.reset_index(drop=True)
Brand Price
0 Honda Civic 22000
1 Honda CRV 40000
2 Toyota Corolla 25000
3 Ford Focus 27000
4 Ford Explorer 37000
5 Audi A4 35000
6 Audi A8 100000