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

Pandas日频OHLCV重采样为周频时自定义聚合逻辑未生效如何解决

问题原因

你调用BTC.resample('W').apply(logic)后没有将返回的聚合结果赋值给变量,原始BTC对象还是未做聚合的日度数据,后续直接修改BTC的索引自然只会偏移原日度数据的日期,不会触发聚合逻辑。另外针对列维度的不同聚合规则,使用agg()方法比apply()更高效规范。

正确实现代码

首先先保证BTC的索引是datetime类型且按时间升序排列,再执行以下逻辑:

import pandas as pd
from pandas.tseries.frequencies import to_offset

# 聚合规则定义
logic = {
    'Open': 'first',
    'High': 'max',
    'Low': 'min',
    'Close': 'last',
    'Volume': 'sum'
}

# 周频重采样+聚合,接收返回的结果
BTC_weekly = BTC.resample('W').agg(logic)
# 将周标签从默认的周日日期偏移6天,改为当周周一的日期
BTC_weekly.index -= to_offset("6D")

# 输出验证
BTC_weekly.head()

补充说明

  • pandas中resample('W')默认以周日作为周结束节点,刚好匹配你的需求:聚合时first会自动取周内第一个交易日(周一)的开盘价,last取周内最后一个交易日(周日)的收盘价,max/min/sum分别对应周内的最高、最低、成交量总和。
  • 如果你的原始数据存在非交易日空缺,没有周一的交易数据,first会自动取周内首个存在的交易日的开盘价,符合实际交易数据的处理逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 11:06:02