Pandas 稀疏數(shù)據(jù)

Pandas 稀疏數(shù)據(jù)操作實例

當省略與特定值(NaN /缺失值,盡管可以選擇任何值)匹配的任何數(shù)據(jù)時,稀疏對象將被“壓縮”。一個特殊的SparseIndex對象跟蹤數(shù)據(jù)被“分散”的位置。在一個示例中,這將更加有意義。所有標準的Pandas數(shù)據(jù)結構都應用to_sparse方法:

 import pandas as pd
 import numpy as np
 ts = pd.Series(np.random.randn(10))
 ts[2:-2] = np.nan
 sts = ts.to_sparse()
 print sts

運行結果如下:

 0 -0.810497
 1 -1.419954
 2 NaN
 3 NaN
 4 NaN
 5 NaN
 6 NaN
 7 NaN
 8 0.439240
 9 -1.095910
 dtype: float64
 BlockIndex
 Block locations: array([0, 8], dtype=int32)
 Block lengths: array([2, 2], dtype=int32)

出于內(nèi)存效率的原因,存在稀疏對象。
現(xiàn)在讓我們假設您有一個很大的NA DataFrame并執(zhí)行以下代碼-

 import pandas as pd
 import numpy as np
 df = pd.DataFrame(np.random.randn(10000, 4))
 df.ix[:9998] = np.nan
 sdf = df.to_sparse()
 print sdf.density

運行結果如下:

   0.0001

可以通過調(diào)用to_dense將任何稀疏對象轉(zhuǎn)換回標準密集形式

 import pandas as pd
 import numpy as np
 ts = pd.Series(np.random.randn(10))
 ts[2:-2] = np.nan
 sts = ts.to_sparse()
 print sts.to_dense()

運行結果如下:

 0 -0.810497
 1 -1.419954
 2 NaN
 3 NaN
 4 NaN
 5 NaN
 6 NaN
 7 NaN
 8 0.439240
 9 -1.095910
 dtype: float64

稀疏數(shù)據(jù)類型

稀疏數(shù)據(jù)應具有與其密集表示相同的dtype。當前,支持float64,int64和booldtypes。取決于原始dtype,fill_value默認更改-

float64 ? np.nan

int64 ? 0

bool ? False

下面我們執(zhí)行以下代碼來了解它們:

 import pandas as pd
 import numpy as np
 s = pd.Series([1, np.nan, np.nan])
 print s
 s.to_sparse()
 print s

運行結果如下:

 0 1.0
 1 NaN
 2 NaN
 dtype: float64
 0 1.0
 1 NaN
 2 NaN
 dtype: float64
丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清