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

如何在Pandas中按顺序合并DataFrame两列生成交错对话列表列

Pandas 新增结构化对话列实现方案

已知你已完成对话内容的分号拆分,且每行客户、机器人对话轮数完全匹配,可直接通过以下代码实现需求。

方法1:逐行函数映射(可读性高,适合小数据量)

通过apply逐行配对两组对话,添加角色前缀后按顺序拼接为列表:

def build_combined_dialog(row):
    dialog_list = []
    for cust_msg, bot_msg in zip(row['cust_dil'], row['bot_dil']):
        # 依次添加带前缀的客户发言、机器人回复,strip()用于清除拆分后残留的首尾空格
        dialog_list.append(f"Customer: {cust_msg.strip()}")
        dialog_list.append(f"Bot: {bot_msg.strip()}")
    return dialog_list

df['combined'] = df.apply(build_combined_dialog, axis=1)

方法2:列表推导式实现(性能更高,适合大数据量)

避免apply的遍历开销,直接通过双层列表推导完成处理,运行速度更快:

df['combined'] = [
    [single_msg for turn_pair in zip(
        [f"Customer: {c.strip()}" for c in cust_turns],
        [f"Bot: {b.strip()}" for b in bot_turns]
    ) for single_msg in turn_pair]
    for cust_turns, bot_turns in zip(df['cust_dil'], df['bot_dil'])
]

后续清理(可选)

如果不需要拆分过程中生成的cust_dil、bot_dil临时列,可执行以下代码删除:

df = df.drop(columns=['cust_dil', 'bot_dil'])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 02:06:35