2017-10-18 51 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

相关问题