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

如何高效筛选Pandas DataFrame中包含数字的行

筛选DataFrame中包含数字的行

你当前的代码无法正确筛选,核心问题是集合里存的是整数类型的数字,而df["text"]中的内容是字符串,字符型数字(比如"1")和整数1属于不同类型,导致判断逻辑永远不成立。

下面提供两种可行的解决方案:

方案1:修正集合类型匹配

把集合改为字符型数字,确保和字符串中的字符类型一致:

# 定义字符型数字集合
num_chars = set("0123456789")
# 生成筛选掩码
has_number = df["text"].apply(lambda x: any(char in num_chars for char in x))
# 提取包含数字的行
filtered_df = df[has_number]

方案2:使用正则表达式(更高效)

利用pandas的str.contains方法结合正则\d(匹配任意数字),这是向量化操作,处理大数据量时性能更优:

# 直接筛选包含数字的行,na=False处理空值情况
filtered_df = df[df["text"].str.contains(r'\d', na=False)]

内容的提问来源于stack exchange,提问作者ADITYA PRATAP SINGH

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 05:15:38