pandas数据帧的同一行但不同列的单元格乘法之和

时间:2016-03-07 09:44:39

标签: python pandas

我有一个数据框

df = pd.DataFrame({'A':[1,2,3],'B':[2,3,4]})

我的数据看起来像这样

Index   A   B
0       1   2
1       2   3
2       3   4

我想计算每行A和B之间的乘法和。 预期结果应为(1x2)+(2x3)+(3x4)= 2 + 6 + 12 = 20。 我可以知道这样做的pythonic方法而不是循环吗?

1 个答案:

答案 0 :(得分:3)

您可以尝试多个列AB,然后使用sum

import pandas as pd
import numpy as np

df = pd.DataFrame({'A':[1,2,3],'B':[2,3,4]})
print df
   A  B
0  1  2
1  2  3
2  3  4

print df['A'] * df['B']
0     2
1     6
2    12
dtype: int64

print (df['A'] * df['B']).sum()
20

或者对所有列使用prod

print df.prod(axis=1)
0     2
1     6
2    12
dtype: int64

print df.prod(axis=1).sum()
20

感谢您ajcr发表评论:

  

如果你只有两列,你也可以使用 df.A.dot(df.B)来提高速度,但是对于三列或更多列,这就是这样做的方法!