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

pandas DataFrame转换为Series时y列出现NaN值是什么原因?

问题原因

你调用pd.Series()时传入的df.y本身是自带默认整数索引(索引值为0、1)的Series对象,额外指定index=df.ds时,pandas会自动执行索引对齐逻辑:用新传入的时间格式索引去匹配原有df.y的整数索引,二者完全无法匹配,最终返回的结果就全为NaN。

解决方案

方法1:提取列的原始值构建Series

取df.y的底层数值数组,避免带入原有索引参与对齐:

data = [['2021-10-14 18:12:00.000', '22811316'],['2021-10-14 18:42:00.000', '22700704']]
df = pd.DataFrame(data, columns = ['ds', 'y'])
series = pd.Series(df.y.values, index=df.ds)

输出结果:

ds
2021-10-14 18:12:00.000    22811316
2021-10-14 18:42:00.000    22700704
Name: y, dtype: object

方法2:通过设置索引直接转换(更推荐)

直接将ds列设为DataFrame的索引后提取y列,无需手动构建Series,逻辑更简洁:

series = df.set_index('ds')['y']

输出结果和方法1完全一致。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 07:06:06