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

如何处理时间序列中的大量NaN值以正常绘制分组可视化图表

解决方案

核心逻辑是不全局处理ex的NaN值,而是对齐你原本按日期分组的绘图逻辑,对单个设备的子数据框按日期做二次拆分后分别处理:

  • 先保留ex里的3类必要列即可:时间列/时间索引、功耗观测列、日期标签列,剔除其他无关列减少冗余
  • 对ex按日期列做二次分组,逐日期块处理NaN并绘图,示例代码如下:
# 提前定义日期和颜色的映射关系,保证所有设备的同日期配色统一
date_color_map = {
    "2024-01-01": "#1f77b4",
    "2024-01-02": "#ff7f0e",
    # 补充剩余4个日期的配色即可
}

# 二次分组处理单设备的不同日期数据
for date, date_sub_df in ex.groupby("你的日期列名"):
    # 仅过滤当前日期块内功耗列为空的行,不跨日期处理
    valid_df = date_sub_df.dropna(subset=["你的功耗列名"])
    # 绘制当前日期的曲线,使用统一的日期配色
    plt.plot(valid_df["你的时间列名"], valid_df["你的功耗列名"], color=date_color_map[date], label=date)
  • 如果你的时间已经设为ex的索引,把代码里的valid_df["你的时间列名"]替换为valid_df.index即可。

不要使用全局向前填充/线性插值的方式处理ex的NaN,否则会把不同日期之间的空白段也填充为虚假数据,导致不同日期的曲线错误连在一起,和你原本按日期分组的绘图效果不一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 23:24:03