微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python – 将两个具有相同形状和相同列名称的Pandas数据帧相乘

我有两个数据帧A,B,NxM形状.我想将两者相乘,使A的每个元素与B的相应元素相乘.

e.g:
A,B = input dataframes
C = final dataframe
I want C[i][j] = A[i][j]*B[i][j] for i=1..N and j=1..M

搜索但无法得到完全解决方案.

解决方法:

我想你可以用:

C = A * B

一个解决方案是mul

C = A.mul(B)

样品:

print A
   a  b
0  1  3
1  2  4
2  3  7

print B
   a  b
0  2  3
1  1  4
2  3  2

print A * B
   a   b
0  2   9
1  2  16
2  9  14

print A.mul(B)
   a   b
0  2   9
1  2  16
2  9  14

A和B 300k长度的计时:

In [218]: %timeit A * B
The slowest run took 4.27 times longer than the fastest. This Could mean that an intermediate result is being cached 
100 loops, best of 3: 3.57 ms per loop

In [219]: %timeit A.mul(B)
100 loops, best of 3: 3.56 ms per loop

A = pd.concat([A]*100000).reset_index(drop=True)
B = pd.concat([B]*100000).reset_index(drop=True)

print A * B
print A.mul(B)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐