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

如何编写Python函数为服装数据集color列缺失值按概率赋随机颜色

缺失值填充实现方案

首先不推荐使用逐行遍历的方式处理,pandas向量化操作的执行效率远高于循环,可直接按以下逻辑实现:

  • 第一步:先定义颜色候选列表和对应概率列表
import numpy as np
import pandas as pd

# 按你给出的分布定义
color_list = [
    'white', 'black', 'silver', 'grey', 'blue', 'red',
    'green', 'brown', 'custom', 'yellow', 'orange', 'purple'
]
prob_list = [
    0.194729, 0.149217, 0.121210, 0.097715, 0.086823, 0.085831,
    0.027132, 0.023690, 0.022386, 0.004960, 0.004493, 0.001984
]
  • 第二步:批量填充color列的缺失值
# 计算缺失值的总数量
na_count = data['color'].isna().sum()
# 按指定概率生成对应数量的随机颜色
fill_values = np.random.choice(color_list, size=na_count, p=prob_list, replace=True)
# 赋值给缺失值位置
data.loc[data['color'].isna(), 'color'] = fill_values

如果你一定要保留原有遍历的写法,可按以下逻辑修改(仅建议小数据量场景使用,数据量超过1万行时执行效率会非常低):

for idx, row in data[data['color'].isnull()].iterrows():
    # 每次按概率抽取1个颜色赋值给当前行
    data.loc[idx, 'color'] = np.random.choice(color_list, p=prob_list)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 09:45:02