我有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
答案 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