代码之家  ›  专栏  ›  技术社区  ›  Mohamed Thasin ah

如何在替换中替换+xx

  •  1
  • Mohamed Thasin ah  · 技术社区  · 6 年前

    我在用 Python 2.7.12 pandas 0.20.3 ,我有一个如下所示的数据帧,我想替换名为number的列,这个列的数据类型是object,当我尝试替换时 +91 在那个专栏里我得到了如下的错误,

              number
    0  +9185600XXXXX
    1  +9199651XXXXX
    2     99211XXXXX
    3     99341XXXXX
    4  +9199651XXXXX
    

    sre_constants.error: nothing to repeat

    完整跟踪,

    “文件”encoder.py,第21行,在 df['number']=df['number']。结构更换('+91','') 文件“/home/hduser/.local/lib/python2.7/site-packages/pandas/core/字符串.py,第1574行,替换为 文件“/home/hduser/.local/lib/python2.7/site-packages/pandas/core/字符串.py,第424行,在str\u replace中 文件“/usr/lib/python2.7/re.py,第194行 返回编译(模式、标志) 文件“/usr/lib/python2.7/回复“,第251行,在编译中” raise错误,v#无效表达式 sre公司_constants.error:无需重复

    但当我替换 91 它像我预期的那样工作,当我把 + 在前缀中,

    错误发生在,

    df['number']=df['number'].str.replace('+91','')
    

    2 回复  |  直到 6 年前
        1
  •  1
  •   jezrael    6 年前

    可以转义特殊的正则表达式值 + one or more repetitions )比如:

    df['number'] = df['number'].str.replace('\+91','')
    

    或使用参数 regex=False

    df['number'] = df['number'].str.replace('+91','', regex=False)
    
        2
  •  1
  •   Archer    6 年前
    import pandas as pd
    data={'number':['+9185600XXXXX','+9199651XXXXX']}
    f=pd.DataFrame(data)
    f['number']=f['number'].str.replace('\+91','')
    print(f)