您好,登錄后才能下訂單哦!
本篇內容主要講解“Pandas數據類型的用法”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Pandas數據類型的用法”吧!
大多數情況下,Pandas使用NumPy數組、Series或DataFrame里某列的數據類型。NumPy支持float、int、bool、timedelta[ns]、datetime64[ns],NumPy是不支持帶時區信息的datetime。
Pandas與第三方支持庫擴充了NumPy類型系統,接下來我們主要來介紹Pandas的內部擴展。
Pandas的擴展類型,如下表所示
Pandas用object存儲字符串。
雖然,object數據類型能夠存儲任何對象,但我們要盡量避免這樣做。
DataFrame的dtypes屬性用起來很方便,以Series形式返回每列的數據類型。
要查看Series的數據類型,用dtype屬性。
Pandas對象單列中含多種類型的數據時,該列的數據類型為可適配于各類數據的數據類型,通常為object。
DataFrame.dtypes.value_用于統計DataFrame里不同數據類型的列數。
多種數值型數據類型可以在DataFrame里共存。如果只傳遞一種數據類型,不論是通過dtype關鍵字直接傳遞,還是通過ndarray或Series傳遞,都會保存至DataFrame操作。此外,不同數值型數據類型不會并和。
整數的默認類型為int64,浮點數的默認類型為float64,這里的默認值與系統平臺無關,不管是32位系統,還是64位系統都是一樣的。下列代碼返回的結果都是int64:
但是我們要注意,NumPy創建數組時,會根據系統選擇類型。下列代碼在32位系統上將返回int32。
與其它類型合并時,用的是向上轉型,指的是從現有類型轉換為另一種類型,如int轉換為float。
轉DataFrame.to_numpy()返回多個數據類型里用得最多的數據類型,這里指的是,輸出結果的數據類型,適用于所有同構NumPy數組的數據類型。此處強制執行向上型。
astype()方法顯式地把一種數據類型轉換為另一種,默認操作為 復制數據,就算數據類型沒有改變也會復制數據,copy=False改變默認操作模式。此外,astype無效時,會觸發異常。
向上轉型一般都遵循NumPy規則,操作中含有兩種不同類型地數據時,返回更為通用地那種數據類型。
用astype把一列或多列轉換為指定類型。
astype通過字典指定哪些列轉換為哪些類型。
注意用astype與loc()為部分列轉換指定類型時,會發生向上轉型。
loc()嘗試分配當前地數據類型,而[]則會從右方獲取數據類型并進行覆蓋。因此,下列代碼會發生意料之外地結果:
Pandas提供了多種函數可以把object從一種數據類型轉換為另一種類型。這是因為,數據有時存儲的是正確類型,但在保存時卻存成了object類型,此時,用DataFrame.infer_objects()
與Series.infer_objects()方法即可把數據轉換為正確的類型。
因為數據被轉置,所以把原始列的數據類型改成了object,但使用infer_objects后就變正確了。
下列函數可以應用于一維數組與標量,執行硬轉換,把對象轉換為指定類型。
to_numeric()轉換為數值型
to_datetime()轉換為datetime對象
to_timedelta()轉換為timedelta對象。
如需強制轉換,則要加入error參數,指定Pandas怎樣處理不能轉換為預期類型或對象的數據。errors參數的默認值為False,指定的是在轉換過程中,遇到任何問題都觸發錯誤。設置為errors=‘coerce’時,pandas會忽略錯誤,強制把問題數據轉換為pd.NaT(datetime與timedelta),或np.nan(數值型)。讀取數據時,如果大部分要轉換的數據是數值型或detetime,這種操作非常有用,但偶爾也會有非制式數據混合在一起,可能會導致展示數據缺失:
error參數還有第三個選項,error=’ignore’。轉換數據時會忽略錯誤,直接輸出問題數據:
執行轉換操作時,to_numeric還有一個參數,downcast,即向下轉型,可以把數值型轉換為減少內存占用的數據類型:
上述方法僅能應用于一維數組、列表或標量;不能直接用于DataFrame等多維對象。不過,用apply(),可以快速為每列應用函數:
到此,相信大家對“Pandas數據類型的用法”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。