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

如何在Pandas中精准修改指定行列的NaN值(线性回归填充)

解决DataFrame中用预测值填充指定索引NaN的问题

你之前的写法无效,核心原因是链式索引(df.loc[index_1]['feature_1'])返回的是原数据的副本,赋值操作只会修改副本,不会影响原DataFrame。下面是两种直接修改原数据的可行方法:

方法1:直接使用.loc的行列定位赋值

这是最直接的方式,通过df.loc[行索引, 列名]直接定位到原DataFrame的目标位置,赋值后会直接修改原数据:

单个缺失值的情况

如果只有一个索引index_1和对应的预测值predicted_feature_1:

df.loc[index_1, 'feature_1'] = predicted_feature_1

多个缺失值的情况

如果是一组索引数组nan_indices和对应的预测值数组nan_values_predicted(两者长度一致,索引和预测值一一对应):

df.loc[nan_indices, 'feature_1'] = nan_values_predicted

方法2:使用Series.update()方法

先创建一个以缺失值索引为索引、预测值为值的Series,再用update方法替换原列中的对应值:

import pandas as pd

# 创建对应索引的Series
pred_series = pd.Series(nan_values_predicted, index=nan_indices)
# 更新原DataFrame的feature_1列
df['feature_1'].update(pred_series)

这个方法的好处是只会替换feature_1列中索引匹配的位置,不会影响其他非缺失值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 18:03:29