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

修复pandas计算活动间隔新增cost_days列的形状不匹配错误

智能灯泡运行日志分组计算赋值形状不匹配问题

基础环境说明

  • 运行环境基于Python,使用pandas存储智能灯泡开关运行日志DataFrame,包含5个字段:
    • date:时间戳
    • ID_bulb:灯泡ID
    • switch:开关状态
    • using_time:使用时长
    • error:状态标记
  • 已提供完整样例数据。

功能需求

需在DataFrame中新增cost_days列,规则如下:

  • 仅using_time字段值不为NaT的行填充计算结果,其余行该列统一填充0
  • 计算逻辑:统计每个灯泡开启周期内,在自定义夜间时段(当日22:00至次日07:00)连续开启时长满n=5小时的天数
  • 已提供符合要求的预期输出样例。

现有代码问题

现有实现参考@keramat的思路编写:

  1. 将索引倒序后,对using_time的非空标记做cumsum运算,以此划分开关周期分组
  2. 自定义rounder函数统计每个周期内符合要求的夜间天数
  3. 分组计算环节运行无异常

执行如下赋值语句时触发报错:

df.loc[df[df['using_time'].notna()].index, 'cost_days'] = temp.values

报错信息如下:

ValueError: shape mismatch: value array of shape (8,) could not be broadcast to indexing result of shape (7,)

初步根因判断

当数据集末尾行的using_time值为NaT时,现有分组逻辑会额外生成1个无效分组,导致最终计算得到的结果数组长度,与需要赋值的目标行长度不匹配,需修复该逻辑问题以输出符合预期的计算结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 21:03:40