Python 将数据帧中的列相乘时出错
我有两个数据帧,分别是s_-df和r_-df。s_df中有一列l1,r_df中有一列l2,它们有正实数和负实数。如果这些列的两两乘积为正,我将尝试做一些事情。像Python 将数据帧中的列相乘时出错,python,pandas,Python,Pandas,我有两个数据帧,分别是s_-df和r_-df。s_df中有一列l1,r_df中有一列l2,它们有正实数和负实数。如果这些列的两两乘积为正,我将尝试做一些事情。像 if ((s_df['l1']*r_df['l2']) > 0): print " do something" 但是我得到了错误 ValueError:序列的真值不明确。使用a.empty, a、 bool()、a.item()、a.any()或a.all() 我不理解这个错误当您将两列相乘时,结果也是一列包含多个元素。
if ((s_df['l1']*r_df['l2']) > 0):
print " do something"
但是我得到了错误
ValueError:序列的真值不明确。使用a.empty,
a、 bool()、a.item()、a.any()或a.all()
我不理解这个错误当您将两列相乘时,结果也是一列包含多个元素。每个元素可以是正的,也可以是负的。本例中的
if
指的是新系列,而不是每个元素,因此不可能得到不含糊的结果
尝试以下方法(可能不是最具python风格的方法):
通过添加sum()方法,可以对两个向量的乘积求和:
if(s_df['l1'] * s_df['l2']).sum() > 0:
print("something")
该错误表示表达式未完全定义。以下是委员会建议的一些选项: DFs中的所有项都大于0: 如果((s_-df['l1']*r_-df['l2'])。all()>0): DFs中的任何项都大于0: if((s_-df['l1']*r_-df['l2'])。any()>0):
如果您想让它遍历每一行,您可能需要使用itertools。定义“这些列的乘积为正”的含义。根据答案,有3种含义:任何两两乘积都是正的,所有两两乘积都是正的,或者对每个两两正的乘积进行一些计算。基于上述不确定性,我对这个问题投了反对票,澄清后很高兴投上一票。刚刚澄清了我的问题。我想要两个圆柱间的两两乘积,我们在兜圈子。现在定义“两列之间的成对乘积”。有一个简单的方法来帮助我们。由3个数字组成2列,告诉我们您想要什么作为输出。
if(s_df['l1'] * s_df['l2']).sum() > 0:
print("something")