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

基于子串定位提取DataFrame指定区间列字符串并合并的技术问题

解决方案

核心修正点

  1. 匹配逻辑优化:用正则r'666|999'实现“或”匹配,且仅在'then'出现后的行中查找目标行,避免无效匹配。
  2. 索引切片修正:Pandas切片为左闭右开,需调整索引确保包含结束行;直接使用行号切片即可,无需额外转换。

完整可运行代码

import numpy as np

# 定位'then'首次出现的行索引
then_loc = np.where(Words['text'] == 'then')[0][0]

# 在'then'之后的行中,找到第一个包含'666'或'999'的行索引
target_subset = Words.iloc[then_loc + 1:]
end_relative_loc = np.where(target_subset['text'].str.contains(r'666|999', na=False))[0][0]
end_loc = then_loc + 1 + end_relative_loc

# 提取范围并合并字符串
result = ''.join(Words['text'].iloc[then_loc + 1 : end_loc + 1])
print(result)  # 输出:theirfe156sligh334pain666

代码说明

  • np.where(Words['text'] == 'then')[0][0]:精准匹配'then',获取其首次出现的行号(从0开始计数)。
  • target_subset = Words.iloc[then_loc + 1:]:仅处理'then'之后的行,排除无关内容。
  • end_loc:将子集中的相对索引转换为原DataFrame的绝对索引,确保切片范围覆盖到目标行。
  • ''.join(...):直接拼接提取到的所有字符串,得到最终结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 22:07:29