Day7_HW : df[object_features].max() ?
解答提到, 只有 object 的 mean() 與 max() 會有問題,原因是文字無法進行平均或比較大小, 但可以發現,object 仍有部分欄位可傳回最大值,可以知道 object 欄位超過一定長度時會當成字串,此時會以字典順序做大小比較.
請問 :
1.object 仍有部分欄位可傳回最大值 <--- 判斷依據是什麼,以此例來說, 'Cabin' & 'Embarked' 不行的原因是什麼?
2.object 欄位超過一定長度時會當成字串 <--- 長度是多少?
3.以字典順序做大小比較是什麼意思?
thanks!
回答列表
-
2019/09/05 下午 00:11Wei-po Tsai贊同數:1不贊同數:0留言數:0
Hi!同學你好:我是個剛學Python的新手,對你提到的問題很有興趣,所以研究了一下。
'Cabin' & 'Embarked' 不行的原因是什麼?
答:原因是Embarked數據中包含NaN值喔!我寫了以下說明,希望對你有幫助:
-
2019/09/05 下午 08:27Ctyun贊同數:1不贊同數:0留言數:0
哈囉,個人覺得答案有誤,看起來這邊object比大小行為跟python字串比大小行為一致,就是字串開頭字元的unicode/ASCII編碼大小,執行以下:
di = {'I': ['azzz', 'Cadfqeqwfe', 'c'], 'II': ['我們', '你們', '他們']}
df = pd.DataFrame(di)
df[["I", "II"]].max()
I c
II 我們
dtype: object
與python執行'a' 'C' 'c'的大小排序 & '我', '你', '他'的大小排序的結果相同
補充:查看字元unicode編碼大小
ord('a')
ord('我')
另外1不行的原因如同Tsai同學所說,不同型別之間(字串與nan)無法比大小
-
2019/09/05 下午 09:41張維元 (WeiYuan)贊同數:1不贊同數:0留言數:0
嗨,樓上兩位同學的回答都很棒,值得好好讀。我印象中也是:object 比大小行為跟 python字串比大小行為一致,就是字串開頭字元的unicode/ASCII編碼大小