【问题标题】:How to select rows with certain condition in Pandas?如何在 Pandas 中选择具有特定条件的行?
【发布时间】:2020-04-18 12:00:41
【问题描述】:

我们有 Title 列,其值为 [Mr, Miss, Dr, Major]。我想选择值仅等于MrMissDr 的行。我写了以下代码:

train = train[train['Title'] in ['Dr', 'Miss', 'Mr']]

但我收到以下错误:

要在 Pandas 中组合过滤条件,请使用按位运算符('&' 和 '|')而不是纯 Python 运算符('and' 和 'or')

有什么问题?

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    你想使用isin

    titles = ['Dr', 'Miss', 'Mr']
    train.loc[train['Title'].isin(titles), :]
    

    【讨论】:

      【解决方案2】:

      对于 Pandas 中的条件运算,使用按位运算符,而不是纯 Python 运算符。阅读此处了解更多信息:boolean indexing。因此,@Eric 提供的解决方案就足够了。但是,您可以使用query 方法,它允许您的搜索条件接近英文表示:

       train.query('Title in ["Dr","Miss","Mr"]')
      

      【讨论】:

        猜你喜欢
        • 2018-12-24
        • 1970-01-01
        • 2017-04-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多