Skip to content

Commit cb099dd

Browse files
committed
BUG: SparseDataFrame iff all are sparse
1 parent 0c5f154 commit cb099dd

File tree

4 files changed

+3
-13
lines changed

4 files changed

+3
-13
lines changed

pandas/core/dtypes/concat.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ def _get_frame_result_type(result, objs):
9292
if any block is SparseBlock, return SparseDataFrame
9393
otherwise, return 1st obj
9494
"""
95-
if any(b.is_sparse for b in result.blocks):
95+
if all(b.is_sparse for b in result.blocks):
9696
from pandas.core.sparse.api import SparseDataFrame
9797
return SparseDataFrame
9898
else:

pandas/core/sparse/frame.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -306,7 +306,7 @@ def to_dense(self):
306306
-------
307307
df : DataFrame
308308
"""
309-
data = {k: v.to_dense() if is_sparse(v) else v for k, v in compat.iteritems(self)}
309+
data = {k: v.to_dense() for k, v in compat.iteritems(self)}
310310
return DataFrame(data, index=self.index, columns=self.columns)
311311

312312
def _apply_columns(self, func):

pandas/core/sparse/series.py

-1
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,6 @@ def __init__(self, data=None, index=None, sparse_index=None, kind='block',
168168
if index is None:
169169
index = data.index.view()
170170
else:
171-
172171
data = data.reindex(index, copy=False)
173172

174173
else:

pandas/tests/sparse/test_frame.py

+1-10
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
import pandas as pd
1010
from distutils.version import LooseVersion
1111

12-
from pandas import Series, DataFrame, bdate_range, Panel, get_dummies
12+
from pandas import Series, DataFrame, bdate_range, Panel
1313
from pandas.core.dtypes.common import (
1414
is_bool_dtype,
1515
is_float_dtype,
@@ -322,15 +322,6 @@ def test_density(self):
322322

323323
assert df.density == 0.75
324324

325-
def test_sparse_to_dense(self):
326-
# See gh-
327-
sdf = DataFrame.from_items([('GDP', [1, 2]),('Nation', ['AB', 'CD'])])
328-
sdf = get_dummies(sdf, columns=['Nation'], sparse=True)
329-
df = sdf.to_dense()
330-
331-
tm.assert_frame_equals(df, sdf)
332-
333-
334325
def test_sparse_series_ops(self):
335326
self._check_frame_ops(self.frame)
336327

0 commit comments

Comments
 (0)