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

如何用Pandas内置方法判断DataFrame子串是否在指定字符串中?

解决方案

要实现需求,你可以使用Pandas的Series.apply()方法,结合lambda表达式判断每个子串是否存在于目标字符串中,这属于Pandas内置方法的范畴:

import pandas as pd

word = 'analphabetic'
df = pd.DataFrame({'substring': list('abcdefgh') + ['ab', 'phobic']})

# 添加目标列
df['analphabetic'] = df['substring'].apply(lambda s: s in word)

print(df)

运行后输出结果与预期一致:

substring  analphabetic
0         a          True
1         b          True
2         c          True
3         d         False
4         e          True
5         f         False
6         g         False
7         h          True
8         ab         True
9     phobic         False

另外也可以利用str.contains()的反向思路,构造包含所有子串的正则模式实现,但子串数量较多时效率不如前者:

import re

pattern = '|'.join(re.escape(s) for s in df['substring'])
df['analphabetic'] = pd.Series([word]*len(df)).str.contains(pattern).groupby(df['substring']).transform('first')

第一种方法更简洁直观,完全符合需求。

内容的提问来源于stack exchange,提问作者T C Molenaar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 10:05:21