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

Pandas如何拼接字典中存储的多个DataFrame并区分各列所属来源

Pandas多DataFrame拼接并标记列归属方案

这里有两种常用的实现方式,你可以根据自己的使用习惯选择:

方案1:给列名添加原DataFrame标识前缀

这个方案直接修改列名,后续使用不需要额外处理,列的归属一眼可辨。
示例代码:

import pandas as pd

# 你的原始数据字典
df_dict = {'ox': dfox, 'dog': dfdog}

processed_df_list = []
for df_name, df in df_dict.items():
    # 给当前df的所有列加上 原名称_ 前缀
    df = df.add_prefix(f"{df_name}_")
    processed_df_list.append(df)

# 按列拼接所有处理后的df
combined_df = pd.concat(processed_df_list, axis=1)

比如原ox下的height列会重命名为ox_height,原dog下的age列会重命名为dog_age。

方案2:使用多级列索引保留原列名

如果不希望修改原始列名,可以选择把原DataFrame的名称作为一级列索引,原列名作为二级索引。
示例代码:

import pandas as pd

df_dict = {'ox': dfox, 'dog': dfdog}

# 拼接时传入keys参数直接生成多级列索引
combined_df = pd.concat(df_dict.values(), axis=1, keys=df_dict.keys())

使用时可以直接通过一级索引取到对应原DataFrame的所有列,比如combined_df['ox']就能拿到原dfox的全部内容,combined_df['dog']['weight']就能取到原dfdog的weight列。

补充说明

如果需要仅保留两个DataFrame索引完全匹配的行,可以在pd.concat中添加参数join='inner'。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 04:45:01