File tree Expand file tree Collapse file tree 2 files changed +25
-0
lines changed
Expand file tree Collapse file tree 2 files changed +25
-0
lines changed Original file line number Diff line number Diff line change @@ -42,6 +42,11 @@ def shape(self):
4242 def axes (self ):
4343 return [self .sp_frame .columns , self .sp_frame .index ]
4444
45+ @property
46+ def blocks (self ):
47+ """ return our series in the column order """
48+ s = self .sp_frame ._series
49+ return [ self .iget (i ) for i in self .sp_frame .columns ]
4550
4651class SparseDataFrame (DataFrame ):
4752 """
@@ -235,6 +240,10 @@ def to_dense(self):
235240 data = dict ((k , v .to_dense ()) for k , v in self .iteritems ())
236241 return DataFrame (data , index = self .index )
237242
243+ def get_dtype_counts (self ):
244+ from collections import Counter
245+ return Series (Counter ([ v .dtype .name for k , v in self .iteritems () ]))
246+
238247 def astype (self , dtype ):
239248 raise NotImplementedError
240249
Original file line number Diff line number Diff line change @@ -821,6 +821,22 @@ def test_constructor_convert_index_once(self):
821821 sdf = SparseDataFrame (columns = range (4 ), index = arr )
822822 self .assertTrue (sdf [0 ].index is sdf [1 ].index )
823823
824+ def test_dtypes (self ):
825+ df = DataFrame (np .random .randn (10000 , 4 ))
826+ df .ix [:9998 ] = np .nan
827+ sdf = df .to_sparse ()
828+
829+ result = sdf .get_dtype_counts ()
830+ expected = Series ({ 'float64' : 4 })
831+ assert_series_equal (result , expected )
832+
833+ def test_str (self ):
834+ df = DataFrame (np .random .randn (10000 , 4 ))
835+ df .ix [:9998 ] = np .nan
836+ sdf = df .to_sparse ()
837+
838+ str (sdf )
839+
824840 def test_array_interface (self ):
825841 res = np .sqrt (self .frame )
826842 dres = np .sqrt (self .frame .to_dense ())
You can’t perform that action at this time.
0 commit comments