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

在Pandas中删除ID列不符合特定后缀模式的行

使用正则表达式过滤Pandas DataFrame的ID列

问题说明

假设存在如下Pandas DataFrame:

ID      Name   Age
ABC-123 XYZ    22
ABC-345 LMK    12
ABC-123-1 MNO   22

需要对ID列进行过滤,仅保留符合ABC-123模式的行(前缀为3个字母,后跟连字符,再跟任意数量的数字,无额外字符),最终得到结果:

ID      Name   Age
ABC-123 XYZ    22
ABC-345 LMK    12

实现方案

1. 创建示例DataFrame

首先导入Pandas并构造测试数据:

import pandas as pd

data = {
    'ID': ['ABC-123', 'ABC-345', 'ABC-123-1'],
    'Name': ['XYZ', 'LMK', 'MNO'],
    'Age': [22, 12, 22]
}
df = pd.DataFrame(data)

2. 编写正则表达式并过滤

使用str.match()方法搭配正则表达式^[A-Z]{3}-\d+$实现过滤:

  • ^:匹配字符串起始位置
  • [A-Z]{3}:匹配3个大写字母(若需支持小写可改为[A-Za-z]{3})
  • -:匹配连字符
  • \d+:匹配一个或多个数字
  • $:匹配字符串结束位置

执行过滤的代码:

filtered_df = df[df['ID'].str.match(r'^[A-Z]{3}-\d+$')]

3. 验证结果

运行后filtered_df将输出符合要求的行:

ID Name  Age
0  ABC-123  XYZ   22
1  ABC-345  LMK   12

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 10:01:20