離散化所有變數
與其一個一個離散化連續變數,不如自動化處理會更容易。若要在 Python 中取得所有欄位的列表,你可以使用:
variables = basetable.columns
只有連續變數需要離散化。你可以透過檢查某個變數是否擁有多於預先定義數量的不同值,來判斷是否需要離散化。
本練習屬於課程
Python 預測分析入門
練習說明
- 建立列表
variables,包含 basetable 的所有欄位名稱。 - 建立一個迴圈,檢查列表
variables中的所有變數。 - 完成
if條件,使只有擁有超過 5 個不同值的變數會被離散化。 - 使用
qcut方法將連續變數分成 10 個區間。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# Print the columns in the original basetable
print(basetable.columns)
# Get all the variable names except "target"
variables = list(____.____)
variables.remove("target")
# Loop through all the variables and discretize in 10 bins if there are more than 5 different values
for variable in ____:
if len(basetable.groupby(____))>____:
new_variable = "disc_" + variable
basetable[new_variable] = pd.qcut(basetable[____], ____)
# Print the columns in the new basetable
print(basetable.columns)