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

如何在Python DataFrame中筛选SYMBOL列以.开头且首字符为数字的行?

筛选DataFrame中SYMBOL列符合特定格式的行

你之前的代码df1.loc[(df1['SYMBOL'].re.sub(r'.\d')]存在两个问题:一是re.sub是字符串替换方法,无法生成筛选条件;二是正则表达式未转义点号(.在正则中默认匹配任意字符),且缺少开头匹配标识。

正确实现方法

我们需要匹配以.开头,且.后第一个字符为数字的行,可通过pandas的字符串匹配方法实现:

1. 使用str.match(推荐,默认从字符串起始位置匹配)

import pandas as pd

# 示例数据
df1 = pd.DataFrame({
    'SYMBOL': ['.1ABC', 'A.2DEF', '.XGH', '.3JKL', 'MN.4O']
})

# 筛选符合条件的行
filtered_df = df1[df1['SYMBOL'].str.match(r'^\.\d')]
print(filtered_df)

2. 使用str.contains(需加^强制匹配字符串开头)

filtered_df = df1[df1['SYMBOL'].str.contains(r'^\.\d')]

正则表达式说明

  • ^:锁定字符串的起始位置
  • \.:匹配实际的点号(转义后避免匹配任意字符)
  • \d:匹配任意单个数字

预期输出

SYMBOL
0  .1ABC
3  .3JKL

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 07:55:17