我正在尝试将多列美元金额转换为浮点数,并编写了以下代码
for column in wo.columns[14:21]:
column = (column.replace( '[\$,)]','', regex=True )
.replace( '[(]','-', regex=True ).replace('#NAME?','NaN', regex=True).astype(float))
return column
And this is the error i get:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-276-f7c13cb3d0af> in <module>
1 for column in wo.columns[14:19]:
----> 2 column = (column.replace( '[\$,)]','', regex=True )
3 .replace( '[(]','-', regex=True ).replace('#NAME?','NaN', regex=True).astype(float))
4 return column
5
TypeError: replace() takes no keyword arguments
可能出了什么问题? wo 是数据框的名称,我用来加载数据框的库是 Pandas,当我在其他单独的列上使用代码时它工作正常,只是当我使用 for 循环时它返回错误。
原文由 Mapo Tofu 发布,翻译遵循 CC BY-SA 4.0 许可协议
它给出了一个错误,因为它不接受关键字参数;在这种情况下
regex=True
。根据 文档,它不存在。此外,.replace
仅适用于字符串,因此此处的数据类型应为str
。另一方面,如果您想使用正则表达式,我建议re.sub