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

如何将模型预测的缺失值列表/序列填充至原DataFrame对应列?

如何用模型预测的列表填充DataFrame的对应缺失值

嘿,这个场景我太熟悉了!pd.Series.fillna()确实只支持填充单一值、字典或者特定方法,但要把顺序匹配的预测值列表精准填入对应缺失位置,其实有个非常直接的解决方案——直接定位缺失值的索引位置,然后赋值就行。

具体步骤示例

假设我们有这样一个带缺失值的DataFrame,以及模型预测好的缺失值列表:

import pandas as pd
import numpy as np

# 构造示例数据
df = pd.DataFrame({
    'feature1': [10, np.nan, 30, np.nan, 50],
    'feature2': [np.nan, 25, np.nan, 45, 55]
})

# 模型预测的feature1缺失值,顺序和df中feature1的缺失位置完全匹配
predicted_values = [20, 40]

接下来只需要两步就能完成填充:

  1. 找到目标列中所有缺失值的索引
  2. 通过索引定位,把预测值列表赋值进去

代码实现:

# 获取feature1列缺失值的索引
missing_idx = df[df['feature1'].isna()].index

# 给这些位置赋值预测值
df.loc[missing_idx, 'feature1'] = predicted_values

验证结果

执行完后打印DataFrame,就能看到缺失值已经被精准填充:

print(df)
# 输出结果:
#    feature1  feature2
# 0      10.0       NaN
# 1      20.0      25.0
# 2      30.0       NaN
# 3      40.0      45.0
# 4      50.0      55.0

为什么这个方法可行?

因为你已经确保了预测列表的长度和缺失值数量一致,且顺序完全匹配缺失值出现的顺序,所以通过loc直接定位索引赋值时,pandas会自动按顺序将列表中的值对应到每个缺失位置上,这是最高效也最直观的方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:06:18