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

如何在Pandas中为多时间序列生成相关矩阵?

解决方案

你的数据是长格式(long format),要计算各item时间序列的相关矩阵,第一步需要把数据重塑为宽格式:每个item作为一列,timestamp作为索引,对应的值填充到单元格中。因为你的数据没有缺失值,这一步可以直接用pivot完成。

然后对宽格式的DataFrame调用corr()方法,就能直接生成所有item两两之间的相关矩阵。

具体代码实现

# 将长格式DataFrame转为宽格式
df_wide = dfso.pivot(columns='item', values='value')

# 计算相关矩阵
corr_matrix = df_wide.corr()

代码说明

  • pivot(columns='item', values='value'):把item列的每个唯一值转成新列,value列的对应值填充到新列的对应行(按timestamp索引匹配)。由于你的数据每个timestamp-item组合都有唯一值,不会出现冲突或缺失。
  • corr():默认采用皮尔逊相关系数计算列与列之间的相关性,直接生成一个N×N的矩阵(N为item总数,这里是700)。矩阵的行和列均为item编号,单元格值就是对应两个item时间序列的相关系数。

报错原因分析

你遇到的TypeError: unsupported operand type(s) for /: 'list' and 'int',大概率是错误地对groupby('item')的结果直接调用相关性计算方法。分组后的对象是多个独立Series的集合,并非适合计算交叉相关性的结构,必须先转成宽格式,让所有时间序列处于同一DataFrame的列中,才能批量计算相关性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 23:27:10