Pandas DataFrame中根据taxable income列数值添加分类标签的方法
Pandas 新增收入标签列实现方案
假设你的DataFrame变量名为df,可以通过以下几种方式实现需求:
方法1:使用numpy.where(推荐,性能最高)
适合简单二分类场景,代码最简洁:
import numpy as np # 新增label列,收入<=30000标记为risky,否则为good df['label'] = np.where(df['taxable income'] <= 30000, 'risky', 'good')
方法2:使用apply方法
适合后续可能扩展更复杂标签规则的场景:
# 自定义函数实现规则 def income_label(income): return 'risky' if income <= 30000 else 'good' df['label'] = df['taxable income'].apply(income_label) # 也可以用lambda简写为一行 # df['label'] = df['taxable income'].apply(lambda x: 'risky' if x <=30000 else 'good')
方法3:使用pd.cut
适合多分段标签场景,扩展性强:
import pandas as pd df['label'] = pd.cut( df['taxable income'], bins=[-float('inf'), 30000, float('inf')], labels=['risky', 'good'] )
注意事项
- 执行操作前请确保
taxable income列为数值类型,若存在字符串格式的数值,可先执行df['taxable income'] = pd.to_numeric(df['taxable income'], errors='coerce')转换 - 若原列存在空值,生成的
label列对应位置会默认返回空值,可根据业务需求补充空值处理逻辑
内容的提问来源于stack exchange,提问作者Tarun
相关产品推荐
相关产品推荐

