【问题标题】:TypeError: Cannot perform 'ror_' with a dtyped [float64] array and scalar of type [bool]TypeError:无法使用 dtyped [float64] 数组和 [bool] 类型的标量执行“ror_”
【发布时间】:2021-05-24 20:14:44
【问题描述】:

我想遍历 df['fyear'] 列并删除任何 'fyear' 不等于 2009、2019 或 2020 的行。但出现此错误:

TypeError: Cannot perform 'ror_' with a dtyped [float64] array and scalar of type [bool]

str(df['fyear'])
for row in df.iterrows():
    if df["fyear"] != 2009 | df["fyear"] !=2019 | df["fyear"] !=2020:
        df.drop(row)

【问题讨论】:

    标签: python pandas dataframe boolean iteration


    【解决方案1】:

    Python 使用or 作为中缀关键字

    df["fyear"] != 2009 or df["fyear"] !=2019 or df["fyear"] !=2020
    

    甚至更好(更 Python 且可读性更强)

    df["fyear"] not in (2009,2019,2020)
    

    【讨论】:

    • 我已经多次使用这个解决方案,它解决了错误。谢谢你,@DownloadPizza!
    猜你喜欢
    • 2020-06-24
    • 2021-12-01
    • 1970-01-01
    • 2016-11-10
    • 2013-12-18
    • 2020-03-02
    • 1970-01-01
    • 2016-01-29
    • 2023-03-27
    相关资源
    最近更新 更多