2017-03-21 77 views
1

我有兩個熊貓DataFrames,其中一個具有索引和列是另一個的子集。例如:熊貓乘以索引和列的元素明智匹配的DataFrames

DF1 =

date  a  b c 
20170101 1.0 2.2 3 
20170102 2.1 5.2 -3.0 
20170103 4.2 1.8 10.0 
... 
20170331 9.8 5.1 4.5 

DF2 =

date  a  c 
20170101 NaN 2.1 
20170103 4  NaN 

我要的是雙方的索引和列匹配的元素方式乘法。即,僅DF1[20170103]['c']將與DF2[20170103]['c']相乘,等等

所得DF應具有相同的尺寸大(DF1),缺失值在DF2設置爲原始DF1值:

result DF =

date  a  b c 
20170101 1.0 2.2 6.3 
20170102 2.1 5.2 -3.0 
20170103 16.8 1.8 10.0 
... 
20170331 9.8 5.1 4.5 

什麼是最好/最快的方式來做到這一點?現實生活中的矩陣非常龐大,DF2相對較少。

回答

1

我想你需要量化的功能mul

df = DF1.mul(DF2, fill_value=1) 
print (df) 
      a b  c 
date      
20170101 1.0 2.2 6.3 
20170102 2.1 5.2 -3.0 
20170103 16.8 1.8 10.0 
20170331 9.8 5.1 4.5