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

如何删除DataFrame中sku列包含英文字母的对应行

解决方案

你目前写的两行空值过滤代码是等价的,pandas中isnull()和isna()功能完全一致,可以合并为一行简化写法:

df = df[df['sku'].notna()]

根据你的需求,删除含字母的sku对应行可以按两种场景选择实现方式:

场景1:仅保留纯数字组成的sku行(仅保留0001、0002这类全数字取值,排除所有含非数字字符的行)

先将sku列统一转为字符串格式,避免数值型sku丢失前置0的问题,再用正则匹配纯数字规则:

# 统一转为字符串格式,保留sku的前置0特征
df['sku'] = df['sku'].astype(str)
# 筛选仅由数字组成的sku行
df = df[df['sku'].str.match(r'^\d+$')]

场景2:仅排除含英文字母的sku行(允许sku包含数字外的其他符号,如横杠、井号、下划线等)

直接用正则匹配所有大小写英文字母,取反过滤即可:

df = df[~df['sku'].str.contains(r'[a-zA-Z]', na=False)]

参数na=False是为了避免未过滤干净的空值导致报错,如果你已经提前完成空值过滤可以省略该参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 07:12:03