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

如何将Pandas DataFrame透视转为3D数组以绘制多T_id维度3D热力图

问题原因

pivot方法仅支持单维度行、单维度列的透视逻辑,无法直接处理三个维度的透视需求,另外你原有尝试代码中还存在未定义的df_date_sum、df_date_error_rate变量,也是运行报错的原因之一。

实现方案

完整适配三维维度的代码如下:

  1. 分组聚合计算错误率
# 移除原有T_id=3的筛选行,按三个维度分组,一次性聚合得到错误总和与总条目数
df_grouped = df.groupby(['Timestamp', 'T_id', 'Pos_id'], as_index=False)['Error'].agg(
    error_sum='sum',
    entry_count='count'
)
# 计算错误率并填充空值
df_grouped['error_rate'] = df_grouped['error_sum'] / df_grouped['entry_count']
df_grouped['error_rate'] = df_grouped['error_rate'].fillna(0)
  1. 生成适配3D绘图的数据集
    如果需要透视表格式的结构化数据,可以用set_index+unstack实现三维透视:
# 索引为Timestamp,列依次为T_id、Pos_id,值为error_rate
df_pivot = df_grouped.set_index(['Timestamp', 'T_id', 'Pos_id'])['error_rate'].unstack(['T_id', 'Pos_id'])

如果需要直接传入3D绘图接口的一维数组,直接提取对应字段即可:

x = df_grouped['Timestamp'].values # X轴:时间
y = df_grouped['Pos_id'].values # Y轴:位置ID
z = df_grouped['T_id'].values # Z轴:T_id
color = df_grouped['error_rate'].values # 颜色:错误率

上述四个数组可直接传入3D散点/体素热力图接口完成可视化。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 23:39:02