首页 文章

如果条件用于Python中两个数据帧之间的比较

提问于
浏览
2

我是python编程的新手 . 任何人都可以检查以下语法是否条件 -

if df1[A]<= df2[B]):
       print("")
else:
       print("")

Getting this exception - ValueError:系列的真值是不明确的 . 使用a.empty,a.bool(),a.item(),a.any()或a.all() .

1 回答

  • 6

    你比较数组,没有标量,所以camparing的输出是另一个数组 . 所以需要anyall . 还需要 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
    

相关问题