Pands 124 26はデータから離れています.
4049 ワード
特定の値にマッチするデータ(NaN/欠落値は、任意の値を選択してもよいが)が省略されると、まばらなオブジェクトは「圧縮」される.特別なSparseIndexオブジェクト追跡データが「疎」されているところです.これは一例においてより有意義になるであろう.すべての標準的なPandsデータ構造は、
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.391926 1 -1.774880 2 NaN 3 NaN 4 NaN 5 NaN 6 NaN 7 NaN 8 0.642988 9 -0.373698 dtype: float64 BlockIndex Block locations: array([0, 8]) Block lengths: array([2, 2])
メモリ効率のためには、まばらなオブジェクトの存在が必要です.
今は大きなNA DataFrameがあると仮定して、下記のコードを実行します.出力結果: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
to_dense
を呼び出して、任意のまばらなオブジェクトを標準的な密集形態に変換することができる.出力結果: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.275846 1 1.172722 2 NaN 3 NaN 4 NaN 5 NaN 6 NaN 7 NaN 8 -0.612009 9 -1.413996 dtype: float64
まばらなDtypes
疎データは、密集表現と同じdtypeを持つべきである.これまでは、float64
、int64
、booldtypes
がサポートされています.元のdtype
、fill_value
のデフォルト値の変更に依存します.float64
−np.nan
int64
−0
以下のコードを実行して、同じ内容を理解します. bool
−False
出力結果:import pandas as pd import numpy as np s = pd.Series([1, np.nan, np.nan]) print (s) print ("=============================") s.to_sparse() print (s)
0 1.0 1 NaN 2 NaN dtype: float64 ============================= 0 1.0 1 NaN 2 NaN dtype: float64