如何使用点积组合两个数据框

问题描述 投票:2回答:2

我有2个数据框:

df_1 = pd.DataFrame({"c1":[2,3,5,0], 
                     "c2":[1,0,5,2], 
                     "c3":[8,1,5,1]}, 
                     index=[1,2,3,4])

df_2 = pd.DataFrame({"u1":[1,0,1,0], 
                     "u2":[-1,0,1,1]}, 
                     index=[1,2,3,4])

对于“ c”和“ u”的每个组合,我想计算点积,例如用np.dot()

例如,c1-u1的值是这样计算的:2 * 1 + 3 * 0 + 5 * 1 + 0 * 0 = 7

结果数据框应如下所示:

     u1   u2
c1   7    3
c2   6    6
c3   13   -2

是否有解决此问题的“优雅”方法,还是唯一的遍历两个数据框的方法?

python python-3.x pandas numpy
2个回答
4
投票

您的意思是:

df_1.T @ df_2
# or equivalently
# df1.T.dot(df2)

输出:

    u1  u2
c1   7   3
c2   6   6
c3  13  -2

0
投票

我们可以使用熊猫matrix multiplication功能进行dot

df_1.T.dot(df_2)

输出:

    u1  u2
c1  7   3
c2  6   6
c3  13  -2
© www.soinside.com 2019 - 2024. All rights reserved.