是python编程的新手。任何人都可以检查if条件的下面语法 -
if df1[A]<= df2[B]):
print("")
else:
print("")
获取此异常 - ValueError:系列的真值是不明确的。使用a.empty,a.bool(),a.item(),a.any()或a.all()。
答案 0 :(得分:6)
你比较数组,没有标量,所以camparing的输出是另一个数组。因此需要any
或all
。同样需要Series
的长度相同:
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