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

Pandas如何依据label列的列表值拆分每行data列的句子文本

解决方法

你可以通过 Pandas 的行遍历方法直接按规则拆分字段,核心逻辑是:从每行label列表中取出起始、结束索引和新标签值,对data字段按索引截取即可,注意 Python 字符串为左闭右开切片,需对输入的起始索引做减1处理。

完整代码示例

import pandas as pd

# 构造你的原始DataFrame
df = pd.DataFrame({
    'id': [1336, 1336],
    'data': ["The PARTIES are willing to hold", "The PARTIES are willing to hold"],
    'label': [[1, 11, 'label_1'], [12, 17, 'label_2']]
})

# 处理生成结果
df_result = pd.DataFrame()
# 保留原有id
df_result['id'] = df['id']
# 按label指定的起止位置截取data
df_result['data'] = df.apply(lambda row: row['data'][row['label'][0]-1 : row['label'][1]], axis=1)
# 提取label列表最后一个元素作为新标签
df_result['label'] = df['label'].str[-1]

print(df_result)

输出结果

id         data    label
0  1336  The PARTIES  label_1
1  1336       are wi  label_2

如果你的原始data字段自带外层单引号,只需要在截取时先去掉外层引号,处理完再加回去即可:

df_result['data'] = df.apply(lambda row: f"'{row['data'].strip(\"'\")[row['label'][0]-1 : row['label'][1]]}'", axis=1)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 03:06:02