python - How do you check a condition of several pandas DataFrame.Series element-wise and apply the result to a new column? -


i have pandas.dataframe.

df = pandas.dataframe([(11,12,13),(1,3,5),(1,1,2)], columns=['a','b','c'])        b   c 0  11  12  13 1   1   3   5 2   3   1   2 

i create fourth column called d tell me if each element in row bigger 10. example this.

      b   c      d 0  11  12  13   true 1   1   3   5  false 2   3   1   2  false 

i tried gives me typeerror.

x = df['a'] y = df['b'] z = df['c'] df['d'] = df.apply(lambda x,y,z: true if x > 10 , y > 10 , z > 10 else false)  

i have tried gives me valueerror.

df['d'] = true df['e'] = df['d'].where(df['a'] > 10 , df['b'] > 10 , df['c'] > 10, other=false) 

we can use np.all on expression df > 10:

in [423]:  df['d'] = np.all(df > 10, axis=1) df out[423]:       b   c      d 0  11  12  13   true 1   1   3   5  false 2   1   1   2  false  in [421]:  df > 10 out[421]:             b      c 0   true   true   true 1  false  false  false 2  false  false  false in [422]:  np.all(df > 10, axis=1) out[422]: array([ true, false, false], dtype=bool) 

Comments