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

在Python及Pandas中提取含指定子串的字符串(一行实现)

纯Python与Pandas的简洁实现方案

一、纯Python一行实现(列表推导式)

这是最贴合Python风格的写法,用列表推导式直接完成过滤:

x = ["2023_jan05", "2023_jan_27", "2023_feb04", "2023_feb05", "2024_feb05"]
must_contain = "feb05"
desired_output = [s for s in x if must_contain in s]

如果需要同时生成原数组对应的布尔索引(对应你原代码里的indices_bool),同样可以用一行列表推导式搞定:

indices_bool = [must_contain in s for s in x]

二、Pandas DataFrame列过滤方案

当x是DataFrame的一列时,用Pandas内置的str.contains()方法能高效完成筛选,尤其适合处理大规模数据:

import pandas as pd

# 构造示例DataFrame
df = pd.DataFrame({
    "names": ["2023_jan05", "2023_jan_27", "2023_feb04", "2023_feb05", "2024_feb05"]
})
must_contain = "feb05"

# 过滤出包含指定子串的所有行
filtered_rows = df[df["names"].str.contains(must_contain)]

# 若仅需要提取列中的元素列表
desired_output = filtered_rows["names"].tolist()

str.contains()会返回一个布尔Series,直接用它作为DataFrame的索引即可筛选出符合条件的行,性能远优于手动循环。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 16:41:02