如何使用object挑選出最大值?
請問,在使用max函數時,理論上資料型態為Object應該沒辦法計算才是,
原本預期會報錯,但是在作業中、df[object_features].max() 還是可以執行,
並且有跑出結果,不過看不出來最大值的計算邏輯為何...到底object型態是怎麼選出最大值的呢?
執行結果:
回答列表
-
2019/05/04 下午 08:45張維元 (WeiYuan)贊同數:2不贊同數:0留言數:0
關於 pandas 的 max 用法,可以參考文件:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.max.html 。可能有以下幾種可能:
1. DataFrame 的 max 沒有特別指定的話,應該是回傳每個 column 的最大值。
2. Series 的 max 應該是回傳該 series 元素的最大值。
另外回來看你的下 max() 的資料是什麼類型:
* df[object_features] => dataframe,所以回傳每個 column 的最大值
那如果輸入的對象是 Objects 的話,就看字串會怎麼比較大小,在 Python 中,字串應該是用首字母的大小(z > y > ... > b > a) 來看。
-
2019/05/05 上午 02:24劉珍銘贊同數:2不贊同數:0留言數:0
就結果推測 max 用在字串時,是用字串的第一個字元排序算出
譬如:female 跟 male 就是取 f 跟 m 比較,因為 m 的順序(英文單字 26 字母排序)在 f 後面,所以 m 比較大。
關於報錯問題,如果不放在迴圈中而是直接執行 df['Embarked'].max() 或是 df['Cabin'].max() 應該就會跳錯了。至於為什麼這兩個 column 才會跳錯,觀察一下這兩個 column 資料的值應該就會猜到了。