如何在Pandas中替换特定行的指定值为编辑后的值?
高效替换符合特定模式的字符串
场景说明
你需要批量处理DataFrame中符合[城市名] KODYA格式的内容,将其统一替换为KOTA [城市名],无需逐个手动指定具体城市名进行替换。
最优解决方案:正则表达式批量替换
利用Pandas的str.replace结合正则捕获组,一次性匹配所有目标模式并完成替换,代码如下:
import pandas as pd # 构造示例数据 data = {'A': ['SURABAYA KODYA', 'JAKARTA', 'KEDIRI KODYA']} df = pd.DataFrame(data) # 正则匹配替换:自动提取城市名并重组格式 df['A'] = df['A'].str.replace(r'(\w+) KODYA', r'KOTA \1', regex=True) print(df)
执行后输出结果:
A 0 KOTA SURABAYA 1 JAKARTA 2 KOTA KEDIRI
代码解释
r'(\w+) KODYA':正则表达式规则,(\w+)会捕获城市名(匹配任意字母/数字组合),后面固定匹配KODYA后缀;r'KOTA \1':替换模板,\1代表前面捕获到的城市名,直接拼接成KOTA + 城市名的目标格式;regex=True:开启正则匹配模式(Pandas 2.0及以上版本需要显式指定,低版本可省略)。
这种方法无需针对每个城市单独写替换规则,无论有多少个符合X KODYA格式的内容,都能一次性完成处理,比手动逐个替换效率高很多。
内容的提问来源于stack exchange,提问作者MADFROST
相关产品推荐
相关产品推荐

