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

Pandas:查找字符串中子串的起始和结束位置

解决Pandas中获取子串结束位置的问题

你可以通过起始位置 + 子串长度 - 1来计算结束位置(因为字符串索引从0开始),直接在assign里新增end列即可,具体代码如下:

import pandas as pd
from numpy.core.defchararray import find

# 创建原DataFrame
df = pd.DataFrame({
  "string": ["abc", "def", "ghi"],
  "substring": ["bc", "e", "ghi"]
})

# 同时计算start和end列
result_df = df.assign(
    start=find(df['string'].values.astype(str), df['substring'].values.astype(str)),
    end=lambda x: x['start'] + x['substring'].str.len() - 1
)

print(result_df)

运行后输出结果:

string substring  start  end
0    abc        bc      1    2
1    def         e      1    1
2    ghi       ghi      0    2

完全符合你期望的结果。这里用lambda函数在assign里直接基于已生成的start列和子串长度计算结束位置,简洁高效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 07:01:24