当特定列也满足单独的条件时,我正在尝试选择满足特定条件的 pandas DataFrame 中的所有单元格。
给定以下数据框:
A B C D
1/1 0 1 0 1
1/2 2 1 1 1
1/3 3 0 1 0
1/4 1 0 1 2
1/5 1 0 1 1
1/6 2 0 2 1
1/7 3 5 2 3
我想以某种方式选择列大于其先前值的数据,何时D
也> 1。我当前尝试使用的语法是:
matches = df[(df > df.shift(1)) & (df.D > 1)]
但是,当我这样做时,我收到以下错误:
TypeError: 无法使用块值操作 [array([nan, nan, nan, nan], dtype=object)] [操作数无法与形状一起广播 (2016) (4) ]
注意:错误是我的实际代码的直接副本和过去,因此错误中的描述和形状不会直接与我的示例 DataFrame 相关。
我知道这df.D > 1
是导致问题的原因,并且直接比较列D
是有效的(df > df.D
例如)。D
尝试与 value进行比较时,我的语法有什么问题,我1
该如何做到这一点?