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

如何将一个DataFrame的列添加到另一DataFrame且保留原有值

问题原因

你写的赋值代码未生效,通常是两个DataFrame的索引不匹配,pandas赋值时默认会按索引对齐,而非按行顺序对齐,导致值无法正确映射。

正确实现方式

下面提供3种适配不同场景的实现方案:

  1. 最稳妥的按行顺序赋值方案(无视索引差异,适合两个表行数完全一致的场景)
df['code'] = df1['code'].to_numpy()

该方案直接提取df1的code列为numpy数组后赋值,彻底绕过pandas的索引对齐逻辑,比使用.values兼容性更高。

  1. 横向拼接方案
df = pd.concat([df, df1[['code']]], axis=1)

通过concat方法按行横向拼接两个表,仅保留df1的code列,适合需要保留原表所有索引属性的场景。

  1. 索引统一后赋值方案(适合原表索引混乱的场景)
# 先重置两个表的索引为从0开始的连续整数,丢弃原有索引
df = df.reset_index(drop=True)
df1 = df1.reset_index(drop=True)
# 此时索引完全对齐,可直接赋值
df['code'] = df1['code']

以上3种方案都可以得到你需要的目标结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 07:18:03