我有一个名为data的数据框,其变量为salary,范围为
SALARY:0 1 2 3 ... 1000
我想打开薪水变量并创建一个新的变量工资带。如果薪水= 0表示缺少乐队,1-200表示低,200-800表示中等,800表示高。
data['SALARY_BAND'] = np.where(data['SALARY']<=0, 'Missing',
np.where(data['SALARY'] <=200, 'low'),
np.where(data['SALARY'] <800, 'mid','high' ))
当我跑的时候我得错误值y
答案 0 :(得分:3)
我会使用cut
函数:
df = pd.DataFrame(list(range(0, 1001, 10)), columns=['SALARY'])
df['SALARY_BAND'] = pd.cut(df.SALARY,
[-1, 0, 200, 800, df.SALARY.max()],
labels=['Missing', 'low', 'mid', 'high'])
答案 1 :(得分:0)
试试这个:
data['SALARY_BAND'] = np.where(data['SALARY']<=0, 'Missing',
np.where(data['SALARY'] <=200, 'low',
np.where(data['SALARY'] <800, 'mid','high' )))