Python 表中列的元素相乘

Python 表中列的元素相乘,python,pandas,dataframe,Python,Pandas,Dataframe,针对这个问题,我尝试了不同的解决方案,但都不起作用。 我有3列float类型,我想将它们的molti应用程序与另一列逐行进行比较。原始数据帧如下所示: +------+------+------+--------+ | Col1 | Col2 | Col3 | Result | +------+------+------+--------+ | 4.5 | 2.0 | 2.0 | 18.0 | | 2.3 | 1.0 | 3.5 | 8.05 | | 2.5 | 5.2

针对这个问题,我尝试了不同的解决方案,但都不起作用。 我有3列float类型,我想将它们的molti应用程序与另一列逐行进行比较。原始数据帧如下所示:

+------+------+------+--------+
| Col1 | Col2 | Col3 | Result |
+------+------+------+--------+
|  4.5 |  2.0 |  2.0 |   18.0 |
|  2.3 |  1.0 |  3.5 |   8.05 |
|  2.5 |  5.2 |  3.0 |    5.0 |
+------+------+------+--------+
第三排显然是错的,第一排和第二排是对的。 所以我创建了一个名为Check的新列,它应该告诉我们,列结果是否是col1、col2和col3的乘积

df['Check'] = np.where((df.col1*df.col2*df.col3) != falseVol.VOLUM,'Result is wrong', 'Result is right')
因为我得到了错误的结果,所以我尝试了几种方法将列相乘,并创建了另一列来存储计算结果:

df['calculated'] = df['col1'] * df['col2'] * df['col3']
df['calculated'] = df['col1'].multiply(df['col2'] * df['col3'], axis=0)
每个都给我匹配的结果,但检查不起作用

如何逐行复制多个列并进行比较?
谢谢。

使用
df.prod
/
np.prod
将列相乘(有效地泛化到许多列),并使用
np.isclose
df.Result
执行元素浮动比较

np.isclose(df.iloc[:, :-1].prod(axis=1), df.Result)
或者

在哪里,

df.iloc[:, :-1].prod(axis=1)

0    18.00
1     8.05
2    39.00
dtype: float64
请注意,执行直接
eq
比较会产生不正确的结果-

df.iloc[:, :-1].prod(axis=1).eq(df.Result)

0     True
1    False   # incorrect
2    False
dtype: bool

这是。

使用
df.prod
/
np.prod
将列相乘(有效地推广到多个列),并使用
np.isclose
df.Result
执行元素浮动比较

np.isclose(df.iloc[:, :-1].prod(axis=1), df.Result)
或者

在哪里,

df.iloc[:, :-1].prod(axis=1)

0    18.00
1     8.05
2    39.00
dtype: float64
请注意,执行直接
eq
比较会产生不正确的结果-

df.iloc[:, :-1].prod(axis=1).eq(df.Result)

0     True
1    False   # incorrect
2    False
dtype: bool

这是由于。

6.585600e+05是658560是的,对不起,我弄错了。结果是正确的,但与结果列的比较不正确。换了。谢谢。6.585600e+05是658560是的,对不起,我弄错了。结果是正确的,但与结果列的比较不正确。换了。非常感谢。