You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何将多日TE数据字典转换为平均TE邻接矩阵

Python实现邻接矩阵转换方案

你字典中每个键对应日期的value都是结构化的标的TE数据表,基于pandas可以快速完成转换,核心流程如下:

  • 拼接所有交易日的分表为全量数据表
  • 按标的对(i,j)分组计算全周期TE平均值
  • 通过透视生成初始矩阵,对齐行列的标的索引
  • 将矩阵对角线值统一设为0

具体实现代码:

import pandas as pd
import numpy as np

# 拼接字典内所有日期的TE数据
full_data = pd.concat(avgTE_data.values(), ignore_index=True)

# 按标的对分组,计算统计周期内的TE均值
pair_avg_te = full_data.groupby(
    ['SYM_ROOT_i', 'SYM_ROOT_j'], 
    as_index=False
)['TE'].mean()

# 生成透视表:列对应横向索引SYM_ROOT_i,行对应纵向索引SYM_ROOT_j
adj_matrix = pair_avg_te.pivot(
    index='SYM_ROOT_j',
    columns='SYM_ROOT_i',
    values='TE'
)

# 对齐行列标的,保证所有标的同时出现在行和列索引中
all_tickers = sorted(set(adj_matrix.index).union(adj_matrix.columns))
adj_matrix = adj_matrix.reindex(index=all_tickers, columns=all_tickers)

# 对角线位置填充为0(标的自身与自身的TE值为0)
np.fill_diagonal(adj_matrix.values, 0)

# 可选:如果存在无记录的标的对,可按需填充为0
# adj_matrix = adj_matrix.fillna(0)

执行后得到的adj_matrix就是目标格式的邻接矩阵,直接打印即可查看和示例一致的行列结构。

内容的提问来源于stack exchange,提问作者Cindy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 07:03:27