我有两个数据框
A B
0 1 2
1 1 2
2 1 2
Run Code Online (Sandbox Code Playgroud)
和
C D
0 1 4
1 2 5
2 3 6
Run Code Online (Sandbox Code Playgroud)
我需要叉积(AC、AD、BC、BD)的平均值。因此我希望能够计算
AC AD BC BD
0 1 4 2 8
1 2 5 4 10
2 3 6 6 12
Run Code Online (Sandbox Code Playgroud)
但到目前为止我还无法这样做。我尝试了乘法等,但没有成功。显然我可以使用循环来做到这一点,但是有没有一种优雅的方法来做到这一点?
干杯,迈克
考虑数据框d1和d2
d1 = pd.DataFrame([[1, 2]] * 3, columns=list('AB'))
d2 = pd.DataFrame(np.arange(1, 7).reshape(2, 3).T, columns=list('CD'))
Run Code Online (Sandbox Code Playgroud)
那么克罗内克积就是
kp = pd.DataFrame(np.kron(d1, d2), columns=pd.MultiIndex.from_product([d1, d2]))
kp
Run Code Online (Sandbox Code Playgroud)
注:
这相当于展平outer每对列的乘积。 不是产品cross。
| 归档时间: |
|
| 查看次数: |
1618 次 |
| 最近记录: |