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

如何参照另一DataFrame的数据替换当前DataFrame的缺失值

解决方案

你完全可以使用fillna()方法实现需求,以下是两种可行的实现方案:

方案1:复用你已计算好的分组均值表df实现填充

无需重复计算均值,直接利用你已经聚合好的结果匹配填充:

# 第一步:将均值表设置为Types和O_periods为双索引,便于匹配
df_mean = df.set_index(['Types', 'O_periods'])[['S_months', 'incident']]
# 第二步:对缺失值表设置相同双索引后填充,之后还原原始索引
df_missing = df_missing.set_index(['Types', 'O_periods'])
df_missing[['S_months', 'incident']] = df_missing[['S_months', 'incident']].fillna(df_mean)
df_missing = df_missing.reset_index()

方案2:直接在缺失值表上分组填充

如果不需要单独维护均值表的话,可以直接在df_missing上分组计算均值并填充,代码更简洁:

# 填充S_months列缺失值
df_missing['S_months'] = df_missing['S_months'].fillna(
    df_missing.groupby(['Types', 'O_periods'])['S_months'].transform('mean')
)
# 填充incident列缺失值
df_missing['incident'] = df_missing['incident'].fillna(
    df_missing.groupby(['Types', 'O_periods'])['incident'].transform('mean')
)

注意事项

  • 若使用方案1,需确保你的均值表df中不存在重复的(Types, O_periods)分组,否则会出现匹配错误。
  • 两种方案均使用的fillna()方法只会修改缺失值部分,原有非缺失的内容不会被覆盖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 05:57:02