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

使用Pandas降采样出现NaN值,拆分传感器文件是否可行?

问题分析与解决方案

NaN值出现的核心原因

把CSV按传感器拆分成多个文件无法解决NaN问题。你的结果里出现NaN,本质是:

  • 某个传感器在对应小时区间内没有任何15分钟的温度记录,resample('H').mean()没有可计算的数据,自然生成NaN;
  • 若readable_time未转换为datetime类型,会导致resample逻辑错误,也可能产生NaN。

不拆分文件的可行解决办法

  1. 先确保时间索引格式正确
    先把readable_time转为datetime类型,避免采样逻辑出错:

    import pandas as pd
    # 转换时间列格式
    Data['readable_time'] = pd.to_datetime(Data['readable_time'])
    Data = Data.set_index('readable_time')
    
  2. 处理NaN值的两种思路

    • 保留所有小时区间,填充缺失值:
      如果需要每个传感器的每小时记录(哪怕无数据),可以用固定值或前后值填充NaN:
      # 按传感器分组重采样,NaN填充为0
      C_hourly = Data.groupby('sensor_no').resample('H').mean().fillna(0).reset_index()
      # 或用前一个有效值填充
      C_hourly = Data.groupby('sensor_no').resample('H').mean().ffill().reset_index()
      
    • 只保留有有效数据的小时区间:
      直接过滤掉包含NaN的行:
      C_hourly = Data.groupby('sensor_no').resample('H').mean().dropna().reset_index()
      

关于拆分文件的说明

拆分单个传感器为独立文件,只是把数据分散存储,对每个文件执行resample时,该出现NaN的小时区间依然会生成NaN,完全解决不了问题,反而增加了文件管理的成本,不建议这么做。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 11:33:15