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

如何按玩具类别用对应最频繁颜色填充DataFrame缺失值?

按玩具分组填充颜色缺失值的实现方法

首先修正你提供的示例代码里的错误:color列里的np应该是np.nan,否则会导致数据类型混乱,修正后的代码如下:

import pandas as pd
import numpy as np

df = pd.DataFrame({
    'toy':['car'] * 4 + ['train'] * 5 + ['ball'] * 3 + ['truck'],
    'color':['red', 'blue', 'blue', np.nan, 'green', np.nan,
             'red', 'red', np.nan, 'blue', 'red', np.nan, 'green']
    })

接下来直接实现按玩具的最频繁颜色填充缺失值,一行核心代码就能搞定:

# 按toy分组,用每组颜色的众数填充本组缺失值
df['color'] = df.groupby('toy')['color'].transform(lambda x: x.fillna(x.mode()[0]))

代码说明

  • groupby('toy'):将数据按玩具类型分组
  • transform:保证分组处理后结果的索引和原DataFrame对齐
  • x.mode()[0]:获取当前组颜色的众数(最频繁出现的颜色),加[0]是为了避免多个众数时返回Series的情况,直接取第一个众数填充

比如car组的颜色是red, blue, blue, NaN,众数是blue,缺失值会被填充为blue;train组的颜色是green, NaN, red, red, NaN,众数是red,两个缺失值都会被替换成red。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 14:35:12