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

Pandas如何从多个DataFrame选取指定列合并为新DataFrame

多DataFrame选取指定列合并为单个DataFrame的实现方法

你原有代码运行不符合预期的核心原因:将两个Series对象以列表形式传入pd.DataFrame()时,pandas默认会把列表里的每个元素作为一行数据处理,最终会生成2行4列的结果,和按列拼接的需求完全相反。

以下是两种可直接复用的正确实现方式:

  • 方法1:使用pd.concat()按列拼接(通用性最强,支持2个及以上DataFrame的列合并)
    只需要将需要保留的列组成列表,指定拼接轴为列方向(axis=1)即可,代码会自动按行索引对齐数据:
    import pandas as pd
    # 选中需要的列,按列方向拼接
    df = pd.concat([df1['grade'], df2['saving']], axis=1)
    
    运行后得到的结果和你给出的预期结构完全一致。
  • 方法2:通过字典映射直接构造新DataFrame(适合列数少的场景,可读性高)
    直接以「列名: 对应列数据」的键值对形式传入字典,就能直接生成目标结构:
    df = pd.DataFrame({
        'grade': df1['grade'],
        'saving': df2['saving']
    })
    

注意:以上两种方法都会自动按原DataFrame的索引匹配行,如果两个原DataFrame的行索引不一致,会自动生成NaN填充缺失的对应行;如果你确定两个表行顺序、索引完全对应,不需要额外做对齐处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 21:39:27