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

如何在Python的Pandas中按分组键填充DataFrame的缺失值?

按分组填充DataFrame缺失值的实现

你可以通过Pandas的groupby结合transform方法实现按分组填充缺失值的需求,具体代码如下:

import pandas as pd
import numpy as np

# 创建原始DataFrame
ds1 = {'col1':[1,1,1,1,1,1,1, 2,2,2,2,2,2,2], 
       "col2" : [1,np.NaN,np.NaN,np.NaN,np.NaN,np.NaN,np.NaN, np.NaN,np.NaN,np.NaN,np.NaN,np.NaN,np.NaN,3]}
df1 = pd.DataFrame(data=ds1)

# 按col1分组,用组内col2的非缺失值填充该组所有缺失值
df1['col2'] = df1.groupby('col1')['col2'].transform(lambda x: x.fillna(x.dropna().iloc[0]))

# 打印填充后的结果
print(df1)

代码说明:

  • groupby('col1'):按照col1的取值对DataFrame进行分组
  • transform(lambda x: x.fillna(x.dropna().iloc[0])):对每个分组的col2列执行填充操作——先筛选出该组的非缺失值,取第一个值(因每个组仅存在一个非空值),再用这个值填充组内所有NaN

如果后续场景中每个分组的非缺失值不止一个,还可以根据需求替换填充逻辑,比如用组内均值填充就把x.dropna().iloc[0]替换为x.mean()。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 16:02:30