如何在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