如果在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 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    您比较的是数组,没有标量,因此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
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看