如何使用where()创建带条件特征?基于性别编码场景需求
使用pandas where()创建isMale特征
假设你已经导入了pandas库,以下是具体实现方法:
1. 创建新特征并保留原Gender列
利用pandas的where()方法,结合替换逻辑实现:
# 第一步:当Gender为female时保留原值,否则赋值为1 df['isMale'] = df['Gender'].where(df['Gender'] == 'female', 1) # 第二步:将剩余的female替换为0 df['isMale'] = df['isMale'].replace('female', 0)
或者更简洁的链式写法:
df['isMale'] = df['Gender'].where(df['Gender'] == 'male', 0).replace('male', 1)
2. 替换原Gender列
如果需要直接用新特征替换原Gender列:
# 先完成值的替换 df['Gender'] = df['Gender'].where(df['Gender'] == 'female', 1) df['Gender'] = df['Gender'].replace('female', 0) # 重命名列为isMale df.rename(columns={'Gender': 'isMale'}, inplace=True)
补充参考:更简洁的numpy.where写法
虽然你指定使用where()方法,但实际场景中numpy.where的逻辑更直观,也可以作为替代:
import numpy as np df['isMale'] = np.where(df['Gender'] == 'male', 1, 0)
内容的提问来源于stack exchange,提问作者Qulymzhanov Nursat
相关产品推荐
相关产品推荐

