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

如何在Python Pandas中删除指定列数值长度不为11位的观测行

解决方案

基础实现(仅校验长度)

首先建议先将col1统一转为字符串类型,避免数字类型存储时开头的0被省略导致长度计算错误,之后直接按字符串长度筛选即可:

import pandas as pd

# 1. 转换col1为字符串类型
df['col1'] = df['col1'].astype(str)

# 2. 仅保留长度为11的行
df = df[df['col1'].str.len() == 11]

如果你想直接修改原DataFrame,也可以用drop方法实现:

df.drop(df[df['col1'].str.len() != 11].index, inplace=True)

进阶实现(同时校验11位纯数字)

如果需要同时满足「长度11位」+「纯数字」的凭证规则,可以用正则匹配筛选:

df = df[df['col1'].astype(str).str.match(r'^\d{11}$')]

说明:正则^\d{11}$表示从开头到结尾完全匹配11个数字字符,能同时过滤长度不符、包含非数字字符的异常数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 15:36:05