我正在try 从两个数据帧构建两个因素的交互作用,就像多元线性回归中通常所做的那样,以寻找多级别交互作用.我们正在try 构建一个排序表,其中包含每个数据帧中所有可能的列产品:

编辑:最初我说的是互联,我的意思是互动

df1 = pd.DataFrame({"A1":[1,1,1,1],
                    "A2":[1,2,3,4],
                    "A3":[3,3,3,3]})
df1
   A1  A2  A3
0   1   1   3
1   1   2   3
2   1   3   3
3   1   4   3

df2 = pd.DataFrame({"B1":[1,2,3,4],
                    "B2":[10,10,10,10]})

df2
   B1  B2
0   1  10
1   2  10
2   3  10
3   4  10

我希望df1`*df2的输出为:

   A1*B1  A1*B2  A2*B1  A2*B2  A3*B1   A3*B2
0      1     10      1     10      3      30
1      2     10      4     20      6      30
2      3     10      9     30      9      30
3      4     10     16     40     12      30

我觉得我真的错过了一些关于Dot产品的东西.但无论我用哪种方法,当我try df1 @ df2次时,我都会得到"矩阵不对齐"

我从df1.T @ df2得到了我不想要的结果

df1.T @ df2
    B1   B2
A1  10   40
A2  30  100
A3  30  120

我已经try 了几种列表理解方法,但我似乎无法实现这种神奇的效果.

推荐答案

IIUC,您可以:

out = pd.DataFrame(
    np.hstack(np.multiply(df1.values[None, :, :].T, df2.values)),
    columns=pd.MultiIndex.from_product([df1.columns, df2.columns]),
)
print(out)

打印:

  A1      A2      A3    
  B1  B2  B1  B2  B1  B2
0  1  10   1  10   3  30
1  2  10   4  20   6  30
2  3  10   9  30   9  30
3  4  10  16  40  12  30

Python相关问答推荐

如何让pyparparsing匹配1天或2天,但1天和2天失败?

inspect_asm不给出输出

Python无法在已导入的目录中看到新模块

我必须将Sigmoid函数与r2值的两种类型的数据集(每种6个数据集)进行匹配,然后绘制匹配函数的求导.我会犯错

在内部列表上滚动窗口

点到面的Y距离

对整个 pyramid 进行分组与对 pyramid 列子集进行分组

如果值不存在,列表理解返回列表

在Python中管理打开对话框

当从Docker的--env-file参数读取Python中的环境变量时,每个\n都会添加一个\'.如何没有额外的?

计算每个IP的平均值

形状弃用警告与组合多边形和多边形如何解决

多处理队列在与Forking http.server一起使用时随机跳过项目

如何使用Pandas DataFrame按日期和项目汇总计数作为列标题

try 检索blob名称列表时出现错误填充错误""

lityter不让我输入左边的方括号,'

使用Python查找、替换和调整PDF中的图像'

使用Python TCP套接字发送整数并使用C#接收—接收正确数据时出错

按条件添加小计列

在pandas中,如何在由两列加上一个值列组成的枢轴期间或之后可靠地设置多级列的索引顺序,