Pandas如何删除location列含非字母值或空值的对应行
Pandas删除location列含非英文字母/空值行的实现方案
你之前的代码仅修改列内字符,没有做行过滤逻辑,自然无法删除不符合要求的整行。正确实现如下:
核心实现代码
# 直接在原数据上过滤,仅保留location列全为英文字母且非空的行 data = data[data['location'].str.fullmatch(r'[a-zA-Z]+', na=False)] # 如果需要保留原数据,存为新变量的写法 test = data[data['location'].str.fullmatch(r'[a-zA-Z]+', na=False)].copy()
代码说明
str.fullmatch(r'[a-zA-Z]+'):要求整行location字段完全由一个或多个英文字母组成,只要存在非英文字母就会判定为不匹配na=False:空值(NaN)会被直接判定为不匹配,自动排除空值行- 外层的布尔索引会筛选所有判定为匹配的行,不符合要求的行直接被过滤删除
内容的提问来源于stack exchange,提问作者Lilly
相关产品推荐
相关产品推荐

