如何删除Pandas DataFrame中逗号后子串长度超过指定值的行
Pandas 筛选逗号后子串符合长度要求的行实现方案
原有代码问题
str.split()未指定分隔符,默认按空白字符切割,无法正确拆分以逗号分隔的name字段值- 原逻辑判断的是切割后列表的长度,而非逗号后子串的实际长度,和需求不匹配
正确实现代码
方案1:split拆分后直接判断
按逗号拆分name列,取后半部分判断长度,仅保留长度≤2的行:
df = df[df['name'].str.split(',', expand=True)[1].str.len() <= 2]
方案2:正则提取后判断(鲁棒性更高)
用正则匹配提取逗号后的内容,自动兼容逗号后存在空格的异常场景:
df = df[df['name'].str.extract(r',\s*(.*)$', expand=False).str.len() <= 2]
两种方案运行后,都会过滤掉name列逗号后子串长度大于2的行,和你给出的预期输出完全一致。
内容的提问来源于stack exchange,提问作者Anubhav
相关产品推荐
相关产品推荐

