【问题标题】:Pandas: return dataframe where one column's values are greater than anotherPandas:返回一列值大于另一列的数据框
【发布时间】:2016-11-03 20:49:46
【问题描述】:

抱歉,如果这是重复的,但我似乎无法在 pandas 文档、SO 或 google 中找到有效的示例。

如何返回一列值大于另一列值的数据框?

应该是这样的:df['A'].where(df['A']>df['B'])

但这只会返回一个向量。我需要完整的过滤数据框。

【问题讨论】:

    标签: python pandas dataframe


    【解决方案1】:

    尝试使用query

    df.query('A > B')
    

    考虑df

    np.random.seed([3,1415])
    df = pd.DataFrame(np.random.rand(10, 2), columns=list('AB'))
    df
    

    选项 1

    df.query('A > B')
    

    选项 2

    df[df.A.gt(df.B)]
    

    【讨论】:

      【解决方案2】:

      在 pandas 语法中执行 df['A'].where(df['A']>df['B']) 本质上是一个掩码。而不是where,您正在获取数据框的一个子集:

      df[df['A'] > df['B']]

      【讨论】:

        猜你喜欢
        • 2020-05-27
        • 2021-04-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-10
        • 2021-10-04
        • 2016-03-08
        相关资源
        最近更新 更多