如何将所有短横线替换为空格?Pandas replace方法失效问题
解决pandas中替换所有'-'为对应空格的问题
针对你的数据集和需求,直接用test1.replace('-',' ',regex=True)可能因DataFrame级别的替换逻辑导致未达预期,推荐使用字符串列专属的str.replace方法,确保每个'-'都被替换成单个空格:
解决方案代码
import pandas as pd dataset = ['0000sh--_dsd' , '0000sd---_dsd' , '000ad-_512'] test1 = pd.DataFrame(dataset) # 针对字符串列执行替换,每个'-'替换为一个空格 test1[0] = test1[0].str.replace('-', ' ', regex=True) print(test1)
执行后输出结果:
0 0 0000sh _dsd 1 0000sd _dsd 2 000ad _512
补充说明
如果一定要用DataFrame的replace方法,需启用inplace=True直接修改原数据,或者接收返回的新DataFrame:
test1.replace('-', ' ', regex=True, inplace=True)
不过str.replace更适合处理字符串列的替换场景,逻辑更清晰,不易出现类型匹配问题。
内容的提问来源于stack exchange,提问作者Sathish Kumar
相关产品推荐
相关产品推荐

