天天看點

Pandas進階教程之:稀疏資料結構

目錄

​​簡介​​

​​spare data的例子​​

​​sparsearray​​

​​sparsedtype​​

​​sparse的屬性​​

​​sparse的計算​​

​​sparseseries 和 sparsedataframe​​

簡介

如果資料中有很多nan的值,存儲起來就會浪費空間。為了解決這個問題,pandas引入了一種叫做sparse data的結構,來有效的存儲這些nan的值。

spare data的例子

我們建立一個數組,然後将其大部分資料設定為nan,接着使用這個數組來建立sparsearray:

這裡的dtype類型是sparse[float64, nan],它的意思是數組中的nan實際上并沒有存儲,隻有非nan的資料才被存儲,并且這些資料的類型是float64.

sparsearray

​<code>​arrays.sparsearray​</code>​ 是一個 ​​extensionarray​​ ,用來存儲稀疏的數組類型。

使用 numpy.asarray() 可以将其轉換為普通的數組:

sparsedtype

sparsedtype 表示的是spare類型。它包含兩種資訊,第一種是非nan值的資料類型,第二種是填充時候的常量值,比如nan:

可以像下面這樣構造一個sparsedtype:

可以指定填充的值:

sparse的屬性

可以通過 .sparse 來通路sparse:

sparse的計算

np的計算函數可以直接用在sparsearray中,并且會傳回一個sparsearray。

sparseseries 和 sparsedataframe

sparseseries 和 sparsedataframe在1.0.0 的版本時候被删除了。取代他們的是功能更強的sparsearray。

看下兩者的使用上的差別:

如果是scipy 中的sparse 矩陣,那麼可以使用 dataframe.sparse.from_spmatrix() :

本文已收錄于 ​​http://www.flydean.com/13-python-pandas-sparse-data/​​ 最通俗的解讀,最深刻的幹貨,最簡潔的教程,衆多你不知道的小技巧等你來發現!