2017-10-18 48 views
0

我想採取兩個數據幀,並將它們相乘以構成第三個數據幀。如果您將兩個其他數據幀相乘以產生它,您如何一次設置熊貓數據框中的所有值?

說我有

  HI BYE HE HER 
Date             
2011-01-10 2  2 2 2 
2011-01-13 2  2 2 2  
2011-01-13 2  2 2 2 
2011-01-26 2  2 2 2 

  BRO CHICK DUDE MAN 
Date             
2011-01-10 2  2 2  2 
2011-01-13 2  2 2  2  
2011-01-13 2  2 2  2 
2011-01-26 2  2 2  2 

,我想,

  MY NAME IS SLIM_SHADY 
Date             
2011-01-10 4  4 4  4 
2011-01-13 4  4 4  4  
2011-01-13 4  4 4  4 
2011-01-26 4  4 4  4 

如何在一行中做到這一點?

回答

3

使用.values轉換爲np.array並執行元素方式的乘法。

df = pd.DataFrame(df1.values * df2.values, 
     index=df1.index, columns="MY NAME IS SLIM_SHADY".split()) 
print(df) 
      MY NAME IS SLIM_SHADY 
Date         
2011-01-10 4  4 4   4 
2011-01-13 4  4 4   4 
2011-01-13 4  4 4   4 
2011-01-26 4  4 4   4 

另一種方法是重命名索引,然後調用df.mul

df2.columns = df1.columns # could also add df2.index = df1.index for security 
df = df1.mul(df2) 
df.columns="MY NAME IS SLIM_SHADY".split() 

print(df) 
      MY NAME IS SLIM_SHADY 
Date         
2011-01-10 4  4 4   4 
2011-01-13 4  4 4   4 
2011-01-13 4  4 4   4 
2011-01-26 4  4 4   4 
+0

我更喜歡第一個。您? – dirtysocks45

+0

@ dirtysocks45同樣,它比第二個更清潔。 –

+0

你介意檢查我關於矢量化的另一個問題嗎?我對最終答案的最後評論有一個問題。 – dirtysocks45

相關問題