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

使用Pandas DataFrame按说话者合并多行文本失败,求解决方法

解决同一说话者台词合并问题

你之前的代码核心问题是误将单元格内容当作列名重命名,还错误删除了正确的列。这个数据源的CSV列是规范的,包含Play、Act、Scene、Speaker、Line,咱们基于正确的列来操作就能实现需求:

import pandas as pd

# 读取莎士比亚剧本数据
url = 'https://raw.githubusercontent.com/dherman/wc-demo/master/data/shakespeare-plays.csv'
data = pd.read_csv(url)

# 按说话者分组,合并所有台词为单行
merged_data = data.groupby('Speaker')['Line'].apply(' '.join).reset_index()

# 可选:查看合并后的前几行结果
print(merged_data.head())

关键步骤说明:

  • 直接读取CSV即可,这个数据源没有坏行,不需要on_bad_lines='skip'
  • groupby('Speaker')按说话者分组,对Line列使用apply(' '.join)把同一说话者的所有台词用空格拼接成单行
  • reset_index()将分组后的索引转为普通列,让结果结构更规整

如果需要按「剧本+说话者」来合并(比如区分不同剧本里同名的说话者),只需调整分组键:

merged_data = data.groupby(['Play', 'Speaker'])['Line'].apply(' '.join).reset_index()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 00:41:15