数据框之间的产品

时间:2017-04-29 17:15:30

标签: python pandas

我有2个dfs:

df1:       0   1  
       B   B0  B1 
       S   S0  S1 

df2:       B   S  
      3    B3  S3   
      4    B4  S4 
      5    B5  S5

我无意识地尝试获取B和S的新值,这些值是df2中每行的副产品,其df1中的相应行。 我想要的输出是:

               B                S  
      3    B3*B0+S3*B1     B3*S0+S3*S1   
      4    B4*B0+S4*B1     B4*S0+S4*S1 
      5    B5*B0+S5*B1     B5*S0+S5*S1 

我遇到的主要问题是如何用df2中的列(B或S)引用df1中的相应索引(B或S)。

我们认为df2的维度高于df1

1 个答案:

答案 0 :(得分:3)

在第一个 -

的第二个和转置之间基本上是矩阵乘法
$scope.$apply([...])

示例运行 -

1)输入:

df2.dot(df1.T)

2)使用问题中张贴的表达式获取输出:

In [100]: df1
Out[100]: 
   0  1
0  7  5
1  2  8

In [101]: df2
Out[101]: 
   0  1
0  6  5
1  1  5
2  6  6

3)验证使用建议的:

# First col of output using the expression used in the question
In [102]: df2.iloc[:,0]*df1.iloc[0,0] + df2.iloc[:,1]*df1.iloc[0,1]
Out[102]: 
0    67
1    32
2    72
dtype: int64

# Second col of output using the expression used in the question
In [103]: df2.iloc[:,0]*df1.iloc[1,0] + df2.iloc[:,1]*df1.iloc[1,1]
Out[103]: 
0    52
1    42
2    60
dtype: int64