Python中如何移除DataFrame的Name列中的[]符号?
解决DataFrame Name列移除[]的问题
你的代码没效果,大概率是这两个原因:要么是你要移除的是纯方括号[],但代码里写的是['和'];要么是方括号在正则里属于特殊字符,直接写会不生效。
给你几个实用的解决办法:
情况1:要移除的是纯[]方括号
方法一:正则批量替换
因为str.replace默认用正则,[和]是正则里的特殊符号(用来定义字符集合),所以得转义后再替换,还能合并成一行搞定:
df['Name'] = df['Name'].str.replace(r'[\[\]]', '', regex=True)
方法二:关闭正则模式直接替换
不想搞正则的话,直接关闭正则匹配,按普通字符串替换:
df['Name'] = df['Name'].str.replace('[', '', regex=False) df['Name'] = df['Name'].str.replace(']', '', regex=False)
情况2:要移除的是['和'](带单引号的括号)
如果你的Name列内容是['张三']这种格式,那原来的代码问题在于没关闭正则,或者没转义,改成下面这样就行:
# 关闭正则直接替换字符串 df['Name'] = df['Name'].str.replace("['", "", regex=False) df['Name'] = df['Name'].str.replace("']", "", regex=False)
或者用正则一次性替换:
df['Name'] = df['Name'].str.replace(r"\['|'\]", "", regex=True)
先确认目标格式更稳妥
不确定括号具体格式的话,先打印几行看看实际内容:
print(df['Name'].head())
内容的提问来源于stack exchange,提问作者user20494840
相关产品推荐
相关产品推荐

