Python 有没有办法乘';熊猫';基于相同列或索引的数据帧?
例如,我有两个表:Python 有没有办法乘';熊猫';基于相同列或索引的数据帧?,python,pandas,Python,Pandas,例如,我有两个表: pA_B_array=np.array([[0.9,0.8,0.3],[0.1,0.2,0.7]]) pA_B=pd.DataFrame(pA_B_array,index=['A=F','A=T'],columns=['B=n','B=m','B=s']).stack() pB_array=np.array([[0.97],[0.01],[0.02]]) pB = pd.DataFrame(pB_array,index=['B=n','B=m','B=s']) A=F B=
pA_B_array=np.array([[0.9,0.8,0.3],[0.1,0.2,0.7]])
pA_B=pd.DataFrame(pA_B_array,index=['A=F','A=T'],columns=['B=n','B=m','B=s']).stack()
pB_array=np.array([[0.97],[0.01],[0.02]])
pB = pd.DataFrame(pB_array,index=['B=n','B=m','B=s'])
A=F B=n 0.9
B=m 0.8
B=s 0.3
A=T B=n 0.1
B=m 0.2
B=s 0.7
dtype: float64
0
B=n 0.97
B=m 0.01
B=s 0.02
我会根据相同的标签或相同的索引将它们相乘,得到:
A=F B=n 0.9*0.97
B=m 0.8*0.01
B=s 0.3*0.02
A=T B=n 0.1*0.97
B=m 0.2*0.01
B=s 0.7*0.02
有什么优雅的方法吗?您可以调用pB
并传入pA_B
并传递参数level=1
以匹配该索引级别和axis=0
,因此它是按行执行的:
In [255]:
pB.mul(pA_B, level=1, axis=0)
Out[255]:
0
A=F B=n 0.873
B=m 0.008
B=s 0.006
A=T B=n 0.097
B=m 0.002
B=s 0.014
如果我的答案回答了你的问题,你能接受吗?我的答案左上角会有一个空的勾号,谢谢