我有一个数据框架
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。我能知道用哪种方法来代替循环吗?
发布于 2016-03-07 09:46:39
您可以尝试使用多列A和B,然后使用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)进行额外的速度,但是对于三列或更多列,这就是实现它的方法!
https://stackoverflow.com/questions/35840458
复制相似问题