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

如何在Pandas中按符号拆分文本为行并转化为三列结构化表格

Pandas处理长文本结构化实现

初始数据准备

先构造包含目标长文本的DataFrame:

import pandas as pd

# 初始单行数据
df = pd.DataFrame({'text': ['C9 ban Pearl; LEV ban Fracture; C9 pick Lotus; LEV pick Haven; C9 ban Split; LEV ban Ascent; Bind remains']})

步骤1:按分号拆分文本为多行

通过字符串拆分+行展开,将单行长文本拆分为独立行,并清理每行前后的空格:

# 按分号拆分文本为列表,再展开为单行
df = df.assign(text=df['text'].str.split(';')).explode('text')
# 去除每行首尾多余空格
df['text'] = df['text'].str.strip()

步骤2:拆分每行到Team、pb_phase、Map三列

针对两种文本格式(队伍+动作+地图、地图+remains)分别处理:

# 处理包含ban/pick的常规行,按空格拆分前两个字段,剩余部分作为地图名
regular_mask = df['text'].str.contains('ban|pick')
df.loc[regular_mask, ['Team', 'pb_phase', 'Map']] = df.loc[regular_mask, 'text'].str.split(n=2, expand=True)

# 处理最后一行的remains格式,拆分地图名和动作,队伍字段设为缺失值
remain_mask = df['text'].str.contains('remains')
df.loc[remain_mask, ['Map', 'pb_phase']] = df.loc[remain_mask, 'text'].str.split(n=1, expand=True)
df.loc[remain_mask, 'Team'] = pd.NA

步骤3:整理最终结构化表格

删除原文本列,重置索引得到最终结果:

final_df = df.drop('text', axis=1).reset_index(drop=True)

执行后输出的结构化表格如下:

Team pb_phase     Map
0    C9      ban   Pearl
1   LEV      ban Fracture
2    C9     pick   Lotus
3   LEV     pick   Haven
4    C9      ban   Split
5   LEV      ban  Ascent
6  <NA>   remains    Bind

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 18:32:12