ValueError: Cannot use a callable replacement when regex=False
时间: 2023-12-03 08:46:11 浏览: 214
keras报错:ValueError: Cannot create group in read only mode
5星 · 资源好评率100%
这个错误通常在使用 Pandas 库中的 `replace()` 方法时出现,当你尝试用一个函数作为替换值时,同时将参数 `regex` 设置为 `False`。这是不允许的,因为 `regex=False` 意味着替换不会使用正则表达式,而是将查找值作为字面量处理。
解决方案是将 `regex` 参数设置为 `True`,或者使用一个具体的替换值而不是函数。如果你确实需要使用函数作为替换值,那么你需要使用正则表达式来匹配要替换的内容,例如:
```
import pandas as pd
def my_func(match):
return match.group(0) + '_new'
df = pd.DataFrame({'col1': ['foo', 'bar', 'baz']})
df['col1'] = df['col1'].replace(r'^[fb]', my_func, regex=True)
print(df)
```
这里我们使用了正则表达式来匹配以 f 或 b 开头的字符串,并将匹配到的内容传递给自定义函数 `my_func()` 进行替换。注意要将 `regex` 参数设置为 `True`。
阅读全文