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

Pandas时间序列按日分组每5条求均值出现IndexingError如何解决

报错原因
  • 执行df['debitVD']后得到的是一维Series对象,仅支持行维度索引,而代码中.iloc[i:i + 5, :]传入了行、列两个索引参数,超出了Series的索引维度限制,因此触发Too many indexers报错。
  • 额外注意:你第二段代码存在缩进错误,循环体内的代码没有正确缩进,修正索引问题前需要先调整缩进格式。
修复方案

基础修复(保留原有循环逻辑)

直接删除.iloc中的列索引参数:即可,同时可优化冗余的get_group调用(循环迭代groupby对象时拿到的item本身就是对应分组的DataFrame):

# 若数据集存在跨月场景,建议将dt.day替换为dt.date,避免不同月份的同一天被分到同一组
dftec = dftec.groupby([dftec["Datetime"].dt.date])

for key, item in dftec:
    d = []
    df = item
    print(df)
    # 若需要包含第一条数据,可将range的起始值从1改为0
    for i in range(1, df.shape[0], 5):
        d.append(df['debitVD'].iloc[i:i + 5].mean())
        print(d)

优化写法(无需嵌套循环,效率更高)

用pandas的分组apply逻辑替代手写循环,代码更简洁:

res = dftec.groupby(dftec["Datetime"].dt.date)['debitVD'].apply(
    lambda x: [x.iloc[i:i+5].mean() for i in range(1, len(x), 5)]
)
# res的每一行对应一天的所有5条均值结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 06:45:04