【问题标题】:Unsupported operand type python不支持的操作数类型 python
【发布时间】:2020-12-04 05:56:10
【问题描述】:

if((pd['data'].str.startswith('aha' | 'bou')) & (pd[‘data1’].str.startswith(‘aha’|’bou’))) 我正在使用我想从数据帧中读取的熊猫,并将以 aha 和 bou 开头的两列数据附加到列表中。在检查我得到的条件时

TypeError : |: 'str' 和 'str' 的操作数类型不受支持

【问题讨论】:

    标签: python pandas string typeerror unsupportedoperation


    【解决方案1】:

    您不能在 Python 中以这种方式使用 | 运算符。 据我所知,您将不得不分别比较这两个实例。这是一个工作版本。

    if ((pd["data"].str.startswith("aha") | pd["data1"].str.startswith("bou")) & (pd["data1"].str.startswith("aha") | pd["data1"].str.startswith("bou")))
    

    【讨论】:

    • 我试过这样做它会抛出一个错误,说“真值是 ambiguos .use a.empty(),a.bool(),a.item(),a.any() or a .all()。”
    • 嗯,您能提供您用于pd 的数据吗?
    【解决方案2】:

    您可以通过元组创建布尔掩码而不是|,输出为布尔掩码:

    m = pd['data'].str.startswith(('aha', 'bou')) & pd['data1'].str.startswith(('aha', 'bou'))
    

    【讨论】:

    • 我试过这样做它会抛出一个错误,说“真值是 ambiguos .use a.empty(),a.bool(),a.item(),a.any() or a .all()。”
    • @Gkyr - 问题出在你的代码中,不能在这里使用if,也许可以帮助this解释原因。
    猜你喜欢
    • 2013-12-08
    • 2018-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-17
    相关资源
    最近更新 更多