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

pandas按Sessions分组重采样1分钟K线为60分钟时触发AttributeError问题

报错原因

你的代码仅完成了分组+重采样的初始化操作,返回的是DatetimeIndexResamplerGroupby中间对象,没有指定聚合规则生成最终DataFrame,所以后续操作时会触发属性不存在的报错。同时该写法未做冗余字段裁剪,不适合3.5亿行规模的大数据处理。

正确实现代码
# 第一步:提前丢弃不需要的字段,大幅降低内存占用,这一步对超大数据集至关重要
df = df[['Sessions', 'Symbol', 'Time', 'Open', 'High', 'Low', 'Close']]

# 第二步:执行分组重采样+符合业务逻辑的聚合
resampled_df = (
    df.groupby("Sessions", group_keys=False)
    .resample(
        '60Min', 
        label='right', 
        on='Time',
        offset='30min',  # 适配9:30开盘规则,让第一个窗口结束时间对齐10:00
        closed='right'   # 匹配右边界包含的时段统计规则
    )
    .agg(
        Symbol=('Symbol', 'first'),
        Time=('Time', 'max'),
        Open=('Open', 'first'),
        High=('High', 'max'),
        Low=('Low', 'min'),
        Close=('Close', 'last')
    )
    .reset_index(drop=True)
)
3.5亿行超大规模数据效率优化建议
  • 优先使用pandas 2.0及以上版本,读取数据时指定pyarrow作为后端,内存占用可降低70%以上,运算速度提升数倍:
    df = pd.read_csv("行情数据路径.csv", engine='pyarrow', dtype_backend='pyarrow')
    
  • 若内存不足以放下全量数据,可按Sessions字段分批次读取处理,每处理完一批就写入磁盘,避免内存溢出。
  • 可替换为polars库处理该场景,语法和pandas高度兼容,相同硬件下运算速度是pandas的5-10倍,内存占用更低。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 13:36:02