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

如何遍历DataFrame列匹配单词列表并返回匹配词的字符索引存入新列

问题解决方法

错误原因

你的原代码每次循环都会覆盖Indexes列的全部值,循环结束后仅会保留列表最后一个词Horse的匹配结果,无法实现多词匹配效果。另外原代码中xList的字符串未加引号,属于语法错误,实际运行会报错。

正确实现代码

import pandas as pd

# 匹配列表注意字符串需加引号
xList = ["Dog", "Rat", "Horse"]

# 自定义匹配函数,返回第一个匹配到的单词的起始索引
def get_match_index(text):
    for word in xList:
        find_idx = text.find(word)
        if find_idx != -1:
            # 示例索引从1开始计数,若需要Python默认0起始直接返回find_idx即可
            return find_idx + 1
    # 无匹配时自定义返回值,这里设置为-1
    return -1

# 对目标列应用函数,生成新列
df_Words["Index"] = df_Words["Words"].apply(get_match_index)

结果验证

运行上述代码后得到的Index列和你给出的预期输出完全一致:

  • 第一行Dog, Cat, Duck匹配到Dog,返回1
  • 第二行Cow, Horse, Pig匹配到Horse,返回6
  • 第三行Monkey, Snake, Rat匹配到Rat,返回16

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 17:15:03