Reputation: 103
Am new to python programming. Can anyone pls check the below syntax for if condition-
if df1[A]<= df2[B]):
print("")
else:
print("")
Getting this exception - ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
Upvotes: 3
Views: 13113
Reputation: 862681
You compare arrays, no scalar, so output of camparing is another array. So need any
or all
. Also need length of both Series
is same:
df1 = pd.DataFrame({'A':[1,2,3]})
print (df1)
A
0 1
1 2
2 3
df2 = pd.DataFrame({'B':[1,2,0]})
print (df2)
B
0 1
1 2
2 0
print (df1['A']<= df2['B'])
0 True
1 True
2 False
dtype: bool
#check if at least one True
print ((df1['A']<= df2['B']).any())
True
#check if all values are True
print ((df1['A']<= df2['B']).all())
False
if (df1['A']<= df2['B']).any():
print("at least one value True")
else:
print("no False values")
at least one value True
if (df1['A']<= df2['B']).all():
print("all values True")
else:
print("not all values True")
not all values True
df1 = pd.DataFrame({'A':[1,2,3]})
print (df1)
A
0 1
1 2
2 3
df2 = pd.DataFrame({'B':[1,2,3]})
print (df2)
B
0 1
1 2
2 3
print (df1['A']<= df2['B'])
0 True
1 True
2 True
dtype: bool
#check if at least one True
print ((df1['A']<= df2['B']).any())
True
#check if all values are True
print ((df1['A']<= df2['B']).all())
True
if (df1['A']<= df2['B']).any():
print("at least one value True")
else:
print("no False values")
at least one value True
if (df1['A']<= df2['B']).all():
print("all values True")
else:
print("not all values True")
all values True
Upvotes: 9