【发布时间】:2017-10-14 11:40:42
【问题描述】:
我想计算 2x2 矩阵的行列式,这是通过在 Nx2 矩阵上滚动大小为 2 的窗口来获取的。我只是将行列式用作示例函数。一般来说,我想将一个函数应用于一个数据帧,该函数是通过窗口更大的数据帧来获取的。
例如,这是一个 2x2 矩阵,我这样计算行列式:
import pandas as pd
import numpy as np
d = pd.DataFrame({
"X": [1,2],
"Y": [3,4]
})
np.linalg.det(d)
现在,我可以通过沿以下数据帧的 axis=0 滑动大小为 2 的窗口来形成 4 个 2x2 矩阵:
df = pd.DataFrame({
"A": [1,2,3,4,5],
"B": [6,7,8,9,10],
})
看起来像:
A B
0 1 6
1 2 7
2 3 8
3 4 9
4 5 10
所以我会得到 [-5., -5., -5., -5.]
据我所知,pandas.DataFrame.rolling 和 rolling.apply 只能应用于一维向量,而不是数据帧?你会怎么做呢?
【问题讨论】: