如果在Python中比较两个数据框的条件
发布于 2021-01-29 14:09:53
是python编程的新手。任何人都可以检查以下语法是否满足以下条件:
if df1[A]<= df2[B]):
print("")
else:
print("")
获取此异常 - ValueError异常:一个系列的真值是不明确的。
使用a.empty,a.bool(),a.item(),a.any()或a.all()。
关注者
0
被浏览
146
1 个回答
-
您比较的是数组,没有标量,因此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