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

如何查找DataFrame中含特定或部分字符串的条目索引并简化代码?

DataFrame字符串匹配的索引定位方案

一、精确匹配的简化实现

不用写循环,直接结合pandas和numpy的方法就能高效搞定,比单独用np.argwhere(df=='apple')更灵活:

  • 生成全量匹配的布尔掩码:mask = df.isin(['apple'])
  • 提取所有匹配位置的行、列索引:rows, cols = np.where(mask)
  • 若需要坐标对格式((行索引, 列索引)),直接打包:match_indices = list(zip(*np.where(mask)))

这种方法原生支持多值匹配(比如isin(['apple', 'banana'])),不用手动循环遍历每一行每一列,代码更简洁且性能更好。

二、部分字符串匹配的实现方法

要匹配子串(比如查找包含‘pple’的条目),可以通过逐元素判断字符串包含关系来实现:

方法1:全DataFrame匹配

  • 生成子串匹配的布尔掩码:sub_mask = df.applymap(lambda x: 'pple' in str(x))
  • 提取所有匹配位置的索引:sub_rows, sub_cols = np.where(sub_mask)
  • 若只需要去重的行索引:unique_match_rows = df.index[sub_rows].unique()

方法2:单列定向匹配(更高效)

如果只需要在某一列中查找,直接用str.contains性能更高:

# 假设目标列是'fruit'
match_row_indices = df[df['fruit'].str.contains('pple', na=False)].index

na=False用来排除空值,避免匹配时抛出错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 10:32:38