【Pandas】資料表內的數字超多位數:round都無法解決嗎?資料表內正常顯示出來超多位數嗎?趕快看過來一招搞定
一、前言
常常遇到資料表(df)裡面的資料超級多位數嗎?明明我就只想要到小數點第二位,
用了df.round進行四捨五入也無法改善嗎?
或在資料表明明是兩位數print出來或轉為文字時又發生一樣的狀況嗎?
還是從資料庫把資料抽出來變成超多位數很煩嗎?
被搞得一個頭兩個大,其實一招就可以解決了。
進入基本教學前,不要忘了訂閱按讚分享唷!
部落格教學網站:
https://pixnashpython.pixnet.net/blog
想要即時訂閱最新文章:
https://forms.gle/MdXmiF2HgHhNChL46
訂閱Telegram來接收最新資訊:
https://t.me/joinchat/VUUuDt67Uq5l6CIQ
二、搞清楚各種float及astype
大部分的會使用df.round的方式對df裡面的資料進行四捨五入,
但你卻忘了一件很重要的事情,就是資料表裡面的每個數值是什麼型態。
一開始的型態不對,不管你是df.round或轉成文字還是print出來都會發生悲劇。
import numpy
df = df.type(float) # float64
df = df.type('float') # float64
df = df.type('float64') # float64
df = df.type('float32') # float32
df = df.type('float16') # float16 正解
這時候要先使用的不是round而是df.astype。
如果你只想顯示兩位數或解決我上述的問題那麼你要先用:
df = df.type('float16') # float16一招就搞定了,
因為你使用32以上的時候,在某些狀況下不管有沒用round他都會去把位元填滿,
導致資料被print出來或轉為文字都會出現數值很醜的強況。
三、後記
這絕對是資料視覺化會遇到的過程...,我之前也被搞很久...
其他更多pandas問題可以到:https://pixnashpython.pixnet.net/blog/category/461784
找教學或答案,如果找不到也可以留言給我唷!
部落格教學網站:
https://pixnashpython.pixnet.net/blog
想要即時訂閱最新文章:
https://forms.gle/MdXmiF2HgHhNChL46
訂閱Telegram來接收最新資訊:
https://t.me/joinchat/VUUuDt67Uq5l6CIQ
留言列表