You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何合并含换行分隔企业名、列结构不同的两个DataFrame

实现方案

核心逻辑

你之前的思路方向是对的,只差将拆分后的列表展开为单行、再用左连接匹配两步操作:

  1. 把DF1的Alliances_names列按\n拆分为企业列表
  2. 用explode方法将列表展开为多行,每行对应1个拆分后的企业,其余字段自动复制原行值
  3. 以拆分出的企业名为关联键,左关联DF2即可,DF2中不存在的企业对应字段会自动填充NaN

完整代码示例

import pandas as pd

# 样本数据,实际场景替换为你自己的DF1、DF2即可
df1 = pd.DataFrame({
    "Alliances_names": ["企业A\n企业B\n企业C", "企业B\n企业D", "企业E\n企业F"],
    "Value1": [10, 20, 30]
})
df2 = pd.DataFrame({
    "Company": ["企业A", "企业B", "企业D", "企业F"],
    "Number1": [1001, 1002, 1004, 1006],
    "Number2": [2001, 2002, 2004, 2006]
})

# 业务逻辑实现
# 1. 拆分联盟名称为企业列表
df1["Company"] = df1["Alliances_names"].str.split("\n")
# 2. 列表展开为多行
df1_exploded = df1.explode("Company", ignore_index=True)
# 可选:如果企业名称前后有空格/换行残留,可加一步清洗避免匹配失败
# df1_exploded["Company"] = df1_exploded["Company"].str.strip()
# 3. 左连接匹配DF2的数值字段
result = df1_exploded.merge(df2, on="Company", how="left")

# 输出结果
print(result)

性能说明

这个方案用的都是pandas原生优化的API,比自行循环遍历效率高10倍以上,即使是百万级以上的数据量也可以正常运行。

内容的提问来源于stack exchange,提问作者Anna Shevtsova

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 20:45:03