Pandas如何筛选仅含一个空格的字符串以提取Excel客户姓名
解决方法
你可以直接用正则匹配符合「仅含一个空格、前后都是字母组成的字符串」的行,刚好匹配你需要的名+姓的姓名结构,操作如下:
步骤1:在现有代码后添加筛选逻辑
你已经导入了re库,直接用pandas的字符串匹配方法筛选即可,代码如下:
# 正则规则:^匹配字符串开头,[a-zA-Z]+匹配至少1个字母,\s匹配1个空格,[a-zA-Z]+匹配后续至少1个字母,$匹配字符串结尾 pattern = r'^[a-zA-Z]+\s[a-zA-Z]+$' # 筛选符合规则的行,重置索引避免原索引混乱 valid_customer = customer[customer['Customer Name'].str.match(pattern, case=False, na=False)].reset_index(drop=True) # 输出筛选后的客户姓名 print(valid_customer)
规则说明
- 这个正则会严格匹配整段内容只有两部分字母、中间仅存在1个空格的字符串,自动过滤掉包含冒号、斜杠、多个空格、数字的其他混杂数据
case=False参数可以兼容大小写混合的姓名写法,na=False会自动跳过空值避免匹配报错
可选优化:直接获取符合要求的姓名列表
如果需要直接得到列表格式的有效姓名,可在筛选后直接转换:
valid_customer_list = valid_customer['Customer Name'].tolist()
内容的提问来源于stack exchange,提问作者Justin Strasbourg
相关产品推荐
相关产品推荐

