首页 > 解决方案 > 熊猫自定义合并条件key1包含key2

问题描述

我正在尝试将两个数据帧与 key1 包含 key2 的条件合并,这是示例

df1

name         info
Bill Gates   Microsoft
Steve Jobs   Apple
Elon Musk    Tesla

df2

name        info
Bill        aaa
Kate        bbb
Steve       ccc

我正在合并关键的“名称”列,我想要得到的结果是

df3

name          info         name     info
Bill Gates    Microsoft    Bill     aaa
Steve Jobs    Apple        Steve    ccc

在我的情况下,df1 相对较小,大约有 600 条记录,但 df2 相当大,大约有 200 万条记录,所以效率也是一个问题,非常感谢。

标签: pythonpandas

解决方案


重命名东西并合并

rename_dict = {'name': 'full', 'info': 'company'}
df1.rename(columns=rename_dict).assign(
    name=lambda d: d.full.str.split().str[0]).merge(df2)

         full    company   name info
0  Bill Gates  Microsoft   Bill  aaa
1  Steve Jobs      Apple  Steve  ccc

推荐阅读