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

如何按顺序合并close_price_df、returns_df和volume_df三个对比DataFrame?

合并三个DataFrame的实现方法

假设你的三个DataFrame(close_price_df、returns_df、volume_df)具有匹配的索引和列结构(比如索引为日期、列为标的代码),可以通过pandas的concat()函数按需求合并,具体方案如下:

  • 纵向拼接(按顺序堆叠数据)
    直接将三个DataFrame按顺序上下拼接,适合需要统一查看所有指标数据的场景:

    import pandas as pd
    
    merged_df = pd.concat([close_price_df, returns_df, volume_df], axis=0)
    

    若需要保留原始索引,且允许重复索引,直接使用上述代码即可;如果要重置合并后的索引,添加ignore_index=True参数:

    merged_df = pd.concat([close_price_df, returns_df, volume_df], axis=0, ignore_index=True)
    
  • 带类型标识的纵向拼接
    为了明确区分每行数据所属的原始DataFrame,可以先给每个DataFrame添加类型标识列,再合并:

    # 为每个DataFrame添加数据类型标识
    close_price_df['data_type'] = '收盘价'
    returns_df['data_type'] = '收益率'
    volume_df['data_type'] = '成交量'
    
    # 合并并保留索引
    merged_df = pd.concat([close_price_df, returns_df, volume_df], axis=0)
    # 可选:将类型标识设为二级索引,方便后续筛选
    merged_df = merged_df.set_index('data_type', append=True)
    
  • 横向拼接(按指标并排展示)
    如果需要将同一标的的收盘价、收益率、成交量对应展示,可采用横向拼接,生成层级列来区分不同指标:

    merged_df = pd.concat([close_price_df, returns_df, volume_df], axis=1, keys=['收盘价', '收益率', '成交量'])
    

    这种方式会让列分为两层:上层是指标类型,下层是标的代码,便于分类查看和操作。

合并前请确认三个DataFrame的索引(或用于对齐的关键字段)保持一致,避免数据错位。

内容的提问来源于stack exchange,提问作者Jamiu S.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 17:48:08