我在项目的一个特定阶段遇到过这个问题.

复制以下内容:

import pandas as pd
# Recreated a sample data
data = {
  "FailCodes": ['4301,4090,5003(1)'],  
}
df = pd.DataFrame(data)
# Want to replace the '(1)' with 'p1q'
print(df.FailCodes.str.replace('(1)','p1q'),'\n') # Not giving expected result
# compare to string object method from standard python, which gives desired result
print('4301,4090,5003(1)'.replace('(1)','p1q'),'\n')
# Can get wanted result with following longer code,but would like explanation why first approach giving the unexpected result.
print(df.FailCodes.str.replace('(','p').str.replace(')','q' ))
  • 意想不到的结果结束为:430p1q,4090,5003(p1q)
  • 预期结果:4301,4090,5003p1q

推荐答案

您可能使用旧版本的Pandas,其中默认参数为regex=True((1)是常规模式).将regex=False改为.str.replace:

print(df.FailCodes.str.replace("(1)", "p1q", regex=False))

输出:

0    4301,4090,5003p1q
Name: FailCodes, dtype: object

Python相关问答推荐

分组数据并删除重复数据

带条件计算最小值

将输入管道传输到正在运行的Python脚本中

PMMLPipeline._ fit()需要2到3个位置参数,但给出了4个位置参数

用合并列替换现有列并重命名

如何使用数组的最小条目拆分数组

Pandas DataFrame中行之间的差异

为什么\b在这个正则表达式中不解释为反斜杠

使用特定值作为引用替换数据框行上的值

在Python中计算连续天数

如何在Great Table中处理inf和nans

Cython无法识别Numpy类型

将一个双框爆炸到另一个双框的范围内

如何在Python Pandas中填充外部连接后的列中填充DDL值

用两个字符串构建回文

用fft计算指数复和代替求和来模拟衍射?

在Django中重命名我的表后,旧表中的项目不会被移动或删除

python的文件. truncate()意外地没有截断'

Python OPCUA,modbus通信代码运行3小时后出现RuntimeError

Python:从目录内的文件导入目录