關於迴圈使用於app_train(list)的語法問題
for col in app_train:
if app_train[col].dtype == 'object':
# 如果只有兩種值的類別型欄位
if len(list(app_train[col].unique())) <= 2:
# 就做 Label Encoder, 以加入相關係數檢查
app_train[col] = le.fit_transform(app_train[col])
問一下就是,為何for這一行可以取app_train(它應是個dataframe而非list阿)
回答列表
-
2020/03/29 下午 08:46張維元 (WeiYuan)贊同數:0不贊同數:0留言數:1
嗨,柏勳
app_train[col] 這裡的 col 應是某個欄位名稱,app_train[col] 是取出這個欄位的整行資料。不太理解你的問題是什麼?
如果這個回答對你有幫助請主動點選「有幫助」的按鈕,也可以追蹤我的GITHUB帳號。若還有問題的話,也歡迎繼續再追問或者把你理解的部分整理上來,我都會提供你 Review 和 Feedback 😃😃😃
-
2020/03/30 上午 00:07張維元 (WeiYuan)贊同數:0不贊同數:0留言數:2
「for col in app_train: 恩目前知道的是如果app_train是個list,那這個for迴圈就會一個一個把list的東西讀出來 但app_train本身是個dataframe(如果用app_train.columns我就可以理解)」
=> 哦!這是個好問題,應該 app_train 的 for loop 預設會用 columns 的方式,會等於 for col in app_train.columns 。你可以想像他跟 dict 的行為有點像。
如果這個回答對你有幫助請主動點選「有幫助」的按鈕,也可以追蹤我的GITHUB帳號。若還有問題的話,也歡迎繼續再追問或者把你理解的部分整理上來,我都會提供你 Review 和 Feedback 😃😃😃