如何在Python中创建二进制虚拟变量,当人员的工资低于工资水平中值时,其值为0
,否则设置为1
?当薪水高于或低于这个水平时,我不明白该怎么做。如何在Python中创建一个条件低于或高于中位数的虚拟变量?
我想这
df['Salary'] = (df['Salary'] > df['Salary'].median()) & (df['Salary'] < df['Salary'].median())
但没有输出。
在此之前,我尝试这样做:
df['Salary'].median()
df_Salary = pd.get_dummies(df['Salary'].median())
df_new = pd.concat([df, df_Salary], axis=1)
df_new
,并得到这个
Gender Exp Salary 74000.0
0 Female 15 78200 1
1 Female 12 66400 NaN
2 Female 3 6000 NaN
...
非常感谢!但是当我按照你所说的那样尝试了一个错误时'ValueError:一个Series的真值是不明确的。使用a.empty,a.bool(),a.item(),a.any()或a.all()。' – jul094
那么这是一个问题,无论'df ['薪水']'和'df ['薪水']。median()'是。不知道这些是什么,我不能给你更具体的帮助,但它似乎'df ['Salary']'是一个值的数组,并且python不知道如何评估一系列Trues和False的有效性。你可能需要像列表理解那样在你做'df ['Salary'] = [0如果薪水
zephyr