File tree 2 files changed +25
-0
lines changed
2 files changed +25
-0
lines changed Original file line number Diff line number Diff line change @@ -42,6 +42,11 @@ def shape(self):
42
42
def axes (self ):
43
43
return [self .sp_frame .columns , self .sp_frame .index ]
44
44
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 ]
45
50
46
51
class SparseDataFrame (DataFrame ):
47
52
"""
@@ -235,6 +240,10 @@ def to_dense(self):
235
240
data = dict ((k , v .to_dense ()) for k , v in self .iteritems ())
236
241
return DataFrame (data , index = self .index )
237
242
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
+
238
247
def astype (self , dtype ):
239
248
raise NotImplementedError
240
249
Original file line number Diff line number Diff line change @@ -821,6 +821,22 @@ def test_constructor_convert_index_once(self):
821
821
sdf = SparseDataFrame (columns = range (4 ), index = arr )
822
822
self .assertTrue (sdf [0 ].index is sdf [1 ].index )
823
823
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
+
824
840
def test_array_interface (self ):
825
841
res = np .sqrt (self .frame )
826
842
dres = np .sqrt (self .frame .to_dense ())
You can’t perform that action at this time.
0 commit comments