从其他DataFrame的对角线创建DataFrame



我有一个Panda DataFrame中两只股票的协方差矩阵,我想创建一个只有该矩阵对角线的数据帧。

矩阵如下:

AAPL        GM
AAPL    0.079894    0.034113
GM      0.034113    0.060838

我想要一个带有索引[AAPL, GM]和一个名为covariance的列的DataFrame或类似的东西:

covariance      
AAPL    0.079894    
GM      0.060838

有没有一种简单的方法可以做到这一点,或者我最终会为循环编写代码来填充其他数据结构吗?

谢谢

使用np.diag选择数据帧的对角线,然后使用pd.DataFrame构造函数创建您想要的输出:

df_diag = pd.DataFrame(data=np.diag(df), columns=['covariance'], index=df.index)

输出

covariance
AAPL    0.079894
GM      0.060838

您可以使用查找:

result = pd.DataFrame(index=df.index, data=df.lookup(df.index, df.columns), columns=['covariance'])
print(result)

输出

covariance
AAPL    0.079894
GM      0.060838

最新更新