如何按顺序合并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.
相关产品推荐
相关产品推荐

