replace() 在 for 循环中没有关键字参数

新手上路,请多包涵

我正在尝试将多列美元金额转换为浮点数,并编写了以下代码

    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 许可协议

阅读 549
1 个回答

它给出了一个错误,因为它不接受关键字参数;在这种情况下 regex=True 。根据 文档,它不存在。此外, .replace 仅适用于字符串,因此此处的数据类型应为 str 。另一方面,如果您想使用正则表达式,我建议 re.sub

原文由 zigzag 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题