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

Pandas:同长度同结构DataFrame添加列出现NaN的问题排查

问题原因与解决方法

核心原因:索引不匹配

哪怕两个DataFrame的长度、列结构完全一致,只要索引(index)不匹配(比如一个是默认的0开始整数索引,另一个是自定义字符串/日期索引,或是索引顺序被打乱),pandas赋值时会按索引对齐,找不到对应索引的行就会填充NaN。

解决办法

1. 重置索引后赋值

先把两个DataFrame的索引统一为默认整数索引,再执行赋值:

DAT01 = DAT01.reset_index(drop=True)
DAT02 = DAT02.reset_index(drop=True)
DAT01['CMGBA'] = DAT02['USDMWH']

2. 忽略索引,按位置直接赋值

如果确定两行的顺序完全对应,直接取列的底层数值数组赋值,跳过索引对齐逻辑:

# 两种写法都可行
DAT01['CMGBA'] = DAT02['USDMWH'].values
# 或者
DAT01['CMGBA'] = DAT02['USDMWH'].to_numpy()

3. 先验证索引一致性

可以先打印两个DataFrame的索引,确认是否真的一致:

print("DAT01索引:", DAT01.index)
print("DAT02索引:", DAT02.index)
# 直接比较索引是否完全匹配
print("索引是否一致:", DAT01.index.equals(DAT02.index))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 02:27:05