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

使用pandas将性别列Other值替换为各半比例male和Female的实现方法

Pandas 替换性别列 Other 取值的实现方案

假设你的数据集存储在名为 df 的 DataFrame 中,性别字段列名为 gender,可按以下步骤操作:


实现逻辑

  • 筛选出所有性别为 Other 的记录的行掩码
  • 按照 50% 概率生成对应数量的 male 和 Female 取值序列
  • 将生成的序列赋值给原数据集中对应行的性别列

基础实现代码

import pandas as pd
import numpy as np

# 1. 筛选所有取值为Other的记录
other_mask = df['gender'] == 'Other'
other_count = other_mask.sum()

# 2. 生成随机替换值,male、Female各占50%概率
replace_vals = np.random.choice(['male', 'Female'], size=other_count, p=[0.5, 0.5])

# 3. 把替换值赋值回原数据集对应位置
df.loc[other_mask, 'gender'] = replace_vals

可选优化方案

  • 若需要固定随机结果方便复现,可在生成替换值前添加固定随机种子的代码:np.random.seed(123),其中123可替换为任意整数
  • 若需要严格接近50%的拆分比例(避免小样本下随机波动过大),可替换生成替换值的代码段:
    # 偶数个Other时刚好各占一半,奇数时差1个
    male_cnt = other_count // 2
    female_cnt = other_count - male_cnt
    replace_vals = np.array(['male'] * male_cnt + ['Female'] * female_cnt)
    # 打乱顺序避免按行顺序固定分配
    np.random.shuffle(replace_vals)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 00:45:03