使用优先级连接/合并两个数据帧

2024-09-26 22:53:40 发布

您现在位置:Python中文网/ 问答频道 /正文

如何连接|合并具有优先级的两个数据帧,在特定列值匹配时保持行与优先级数据帧的距离。是否有一种连接类型可以描述这一点

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\u merge\u with\u priority预期输出:

品牌:本田CRV、本田思域、丰田花冠、福特探索者、福特福克斯、奥迪A4、奥迪A8

价格:40000、22000、25000、27000、37000、35000、100000

注意丰田花冠和丰田赛利卡的价格是如何相同的,然而,在这个例子中我们只想保留花冠。关于如何加入priority有什么想法吗


Tags: 数据dfcarspricea4pdprioritybrand
1条回答
网友
1楼 · 发布于 2024-09-26 22:53:40

如果您正在寻找与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

相关问题 更多 >

    热门问题