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

如何遍历Pandas DataFrame重复分组并使用分组众数填充NaN缺失值

实现方案

方法1:显式遍历每个分组

符合你需要的for循环遍历分组的需求,代码如下:

# 按val1、val3组合拆分成分组
for (group_val1, group_val3), partition in temp_df.groupby(['val1', 'val3']):
    # 打印当前分组
    print(f"分组val1={group_val1}、val3={group_val3}:")
    print(partition)
    print("-"*30)

    # 计算当前分组val2列的众数,取第一个众数处理多众数场景
    val2_mode = partition['val2'].mode()[0]
    # 填充当前分组内val2的NaN值
    partition['val2'].fillna(val2_mode, inplace=True)

方法2:更高效的向量化写法(无需手动遍历)

如果只需要填充NaN不需要单独处理每个分组,直接用groupby+transform即可一步完成:

temp_df['val2'] = temp_df.groupby(['val1', 'val3'])['val2'].transform(
    # 若分组全为NaN可自定义默认填充值,这里示例默认填充0
    lambda x: x.fillna(x.mode()[0] if not x.mode().empty else 0)
)

填充后结果示例

id  val1  val2  val3
0   0     1   1.0     2
1   1     1   4.0     2
2   2     1   4.0     2
3   3     1   4.0     2
5   5     3   7.0     3
6   6     3   7.0     3
7   7     3   7.0     3

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 21:45:05