Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将数据帧中的列相乘时出错_Python_Pandas - Fatal编程技术网

Python 将数据帧中的列相乘时出错

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() 我不理解这个错误当您将两列相乘时,结果也是一列包含多个元素。

我有两个数据帧,分别是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
指的是新系列,而不是每个元素,因此不可能得到不含糊的结果

尝试以下方法(可能不是最具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")