当前位置: 首页 > 面试题库 >

如果在Python中比较两个数据框的条件

商经业
2023-03-14
问题内容

是python编程的新手。任何人都可以检查以下语法是否满足以下条件:

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

获取此异常 - ValueError异常:一个系列的真值是不明确的。
使用a.empty,a.bool(),a.item(),a.any()或a.all()。


问题答案:

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


 类似资料:
  • 问题内容: 我有一个脚本可以更新5-10列的数据,但有时起始csv与结束csv相同,因此我不想写相同的csvfile,而是希望它不执行任何操作… 如何比较两个数据框以检查它们是否相同? 有任何想法吗? 问题答案: 您还需要小心创建DataFrame的副本,否则csvdata_old将使用csvdata更新(因为它指向相同的对象): 要检查它们是否相等,可以在此答案中使用assert_frame_e

  • 问题内容: 我有两张桌子。一个(下面的df)大约有18,000行,另一个(下面的映射文件)大约有80万行。我需要一个可以与如此大的DataFrames一起使用的解决方案。 这是一个玩具示例:表1-df 表2-映射文件 我正在尝试执行以下操作(我的语法是错误的,但是我认为这个想法会出现): 换句话说:我需要遍历mapfile中的每个项目(行),看看它的位置是否在df中每个CHR的任何START和EN

  • 我想获得客户总购买的平均值并将其存储在@x中 然后我想存储供应商总采购的平均值,并将其存储在@Y中

  • 问题内容: 我有2个数据框,如下所示: 最后,我想得到的是: 因此,我想比较两个数据帧,我想查看第一数据帧(对于列A和B)的哪些行与第二数据帧(列K和L)相同,并在第一数据帧的列D上分配1。 我可以使用for循环,但是输入大量条目会很慢。 任何线索或建议将不胜感激。 问题答案: 这是我解决的方法:

  • 问题内容: 使用Linux,我想比较两个具有相同架构的SQLite数据库。只会有一些差异。 有没有可以输出这些差异的工具?最好将它们输出到命令行,以便我可以grep / sed它们。 SQLite使用SQL,因此一般的SQL工具也可以使用。 问题答案: 请查看2015年5月7日发布的SQLite版本3.8.10。此版本首次包含 sqldiff.exe 实用程序, 用于计算两个SQLite数据库文件

  • 问题内容: 我必须比较两个对象(不是)。比较它们的规范方法是什么? 我可以想到: 该运营商只比较基准,因此这将仅适用于较低的整数值的工作。但是也许自动装箱开始了…? 这看起来像一个昂贵的操作。是否以此方式计算出哈希码? 有点冗长… 编辑: 谢谢您的答复。尽管我现在知道该怎么办,但事实已分布在所有现有答案(甚至是已删除的答案)上,我也不知道该接受哪个答案。因此,我将接受最佳答案,即所有三种比较可能性