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

如何展开Python Pandas DataFrame并替换字符串合并其他DataFrame数据?

解决方法

可以通过 Pandas 拆分数据、交叉连接、字符串替换三步实现需求,具体代码和步骤如下:

1. 准备示例数据

先构造和你提供的结构一致的测试数据:

import pandas as pd

# 模拟你的 Dataframe1
df1 = pd.DataFrame({
    'Text': [
        '无关数据',
        '随机示例文本 {ExplodeElist2} 及更多随机示例文本。',
        '其他无关数据'
    ]
})

# 模拟你的 EList2
elist2 = pd.DataFrame({
    'Name': ['Jack', 'Jon', 'Sally']
})

2. 拆分并处理需要展开的行

# 筛选出包含占位符的行
to_explode = df1[df1['Text'].str.contains('{ExplodeElist2}')].copy()
# 添加临时键实现交叉连接(让每行对应所有 Name)
to_explode['temp_key'] = 1
elist2['temp_key'] = 1
# 交叉连接生成所有组合
exploded_rows = to_explode.merge(elist2, on='temp_key')
# 替换占位符为对应 Name
exploded_rows['Text'] = exploded_rows['Text'].str.replace('{ExplodeElist2}', exploded_rows['Name'])
# 清理临时列和多余列
exploded_rows = exploded_rows.drop(columns=['temp_key', 'Name'])

3. 合并结果并恢复顺序

# 筛选不需要展开的原始行
original_rows = df1[~df1['Text'].str.contains('{ExplodeElist2}')]
# 合并并保持原数据的顺序
final_result = pd.concat([original_rows, exploded_rows]).sort_index(kind='merge').reset_index(drop=True)

运行后 final_result 就是你需要的输出结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 02:17:04