熊猫优先连接/合并两个数据框

时间:2019-12-13 17:18:01

标签: python pandas dataframe join

如何连接|合并具有优先级的两个熊猫数据帧,如果特定列值匹配,则将行与优先级数据帧保持隔离。是否有描述这种情况的联接类型?

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的价格如何相同,但是在这种情况下,我们只保留花冠。关于如何优先加入的任何想法?

1 个答案:

答案 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