pandas dataframe删除括号内数字时纯数字内容被移除问题咨询
问题原因
234被移除的核心原因是**column1列的数据类型混杂**:Hello (120)、World (22是字符串类型,而234是整数/数值类型。
pandas的.str字符串访问器仅能处理字符串类型的取值,非字符串类型的值调用.str.replace时会被自动转换为空值NaN,表现为该行内容消失。
你编写的两段正则匹配逻辑本身没有问题,不会修改纯数字字符串。
修复方案
首先将整列统一转换为字符串类型,再执行替换操作即可,也可以将两次正则合并简化代码:
# 先将整列转为字符串类型,避免数值被转成空值 df['column1'] = df['column1'].astype(str) # 单次正则匹配所有左括号开头、后跟数字的片段(兼容有无右闭合括号的情况) df['column1'] = df['column1'].str.replace(r"\(\d+\)?", "", regex=True) # 可选:去除替换后末尾残留的空格 df['column1'] = df['column1'].str.rstrip()
运行后即可得到预期输出:
column1 -------- Hello 234 World
内容的提问来源于stack exchange,提问作者ksohan
相关产品推荐
相关产品推荐

