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

Pandas中DataFrame添加向量Series列时仅存储NaN问题求助

问题原因

创建Series s时未指定索引,它会自动使用默认整数索引[0,1,2],而DataFrame df的索引是["one", "two", "three"]。Pandas赋值时遵循索引对齐规则,s中没有与df匹配的索引项,因此新列c只能填充NaN。

解决办法

以下是几种可行的处理方式:

方法1:创建Series时指定与df一致的索引

让s的索引和df完全匹配,赋值时就能正确对齐数据:

s = pd.Series([(i*10, i*11, i*12) for i in df["a"]], index=df.index, dtype=object)
df.loc[:, "c"] = s

方法2:直接使用Series的values属性赋值

跳过索引对齐逻辑,直接取s的底层值数组赋值:

df["c"] = s.values

或者用loc方式:

df.loc[:, "c"] = s.values

方法3:用assign方法添加新列

通过assign方法直接生成包含新列的DataFrame:

df = df.assign(c=s.values)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 16:32:08