如何基于两列条件为DataFrame创建返回Boolean值的新列
Pandas 新增满足双条件布尔列实现方法
直接通过布尔向量按位与运算组合两个筛选规则,给DataFrame赋值新列即可,不需要写循环遍历,pandas会自动完成行级匹配。
- 学历组合条件用
isin()做值匹配,覆盖三个目标学历:Bachelors、Masters、Doctorate - 薪资条件根据列的实际存储格式选择写法:如果是存的
>50K/<=50K这类分类字符串,直接做等值匹配;如果是数值类型,直接做大小比较
完整代码示例
以通用成人收入数据集结构(学历列名education,薪资列名salary,薪资为分类字符串格式)为例:
# 新增布尔列,同时满足两个条件时值为True,否则为False df['high_edu_high_salary_flag'] = ( df['education'].isin(['Bachelors', 'Masters', 'Doctorate']) & (df['salary'] == '>50K') )
如果你的薪资列是数值类型(单位:千美元),把第二个判断条件替换成(df['salary'] > 50)即可;如果薪资列是整数单位为美元,就替换成(df['salary'] > 50000)。
注意:两个判断条件必须分别用圆括号包裹,否则因为Python运算符优先级规则(位运算符
&优先级高于比较运算符)会触发执行报错。
内容的提问来源于stack exchange,提问作者Ebrima C Jallow
相关产品推荐
相关产品推荐

