Panda Dataframe:检查行是否满足多个列过滤器

时间:2016-11-15 20:12:05

标签: python pandas dataframe

有没有办法检查数据框中的某些行是否满足多个过滤器?我想找到满足过滤器的行,并在它们通过过滤器时添加额外的值。

例如,

a b c d e f
2000-01-01 1 1 2  
2000-01-02 0 0 0  
2000-01-03 1 -2 -1  
2000-01-04 5 -5 -2  
2000-01-05 0 -5 0  
2000-01-06 0 0 0  
2000-01-07 5 -2 6  
2000-01-08 0 0 0  

考虑具有列a,b,c,d,e,f(d,e,f为空)的数据帧。我该怎么做:

if (df['a'] == 0 AND df['b'] == 0 AND df['c'] == 0):
  df['d'] = 0
  df['e'] = 0
  df['f'] = 0

因此第2,第6和第8行在d,e,f列中应该为0,其余行应在这些列中具有空值

谢谢!

1 个答案:

答案 0 :(得分:2)

您可以使用向量化和2创建用于索引和赋值的逻辑向量:

102

enter image description here

更新:如果&的值不同,您可以执行以下操作:

df.loc[(df.a == 0) & (df.b == 0) & (df.c == 0), list('def')] = 0

enter image description here