Skip to content

Commit 3e87592

Browse files
committed
ENH: refactoring sparse classes to create SparseArray subclass for SparseSeries re: #436
1 parent b3c12b1 commit 3e87592

File tree

11 files changed

+504
-201
lines changed

11 files changed

+504
-201
lines changed

pandas/__init__.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,3 +28,6 @@
2828
from pandas.util.testing import debug
2929

3030
from pandas.tools.pivot import pivot_table
31+
32+
from pandas.sparse.api import (SparseArray, SparseSeries, SparseDataFrame,
33+
SparsePanel)

pandas/core/api.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
from pandas.core.panel import Panel, LongPanel
1414
from pandas.core.groupby import groupby
1515
from pandas.core.reshape import pivot_simple as pivot
16-
from pandas.core.sparse import SparseSeries, SparseDataFrame, SparsePanel
1716

1817
DataMatrix = DataFrame
1918
WidePanel = Panel

pandas/core/common.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -660,6 +660,9 @@ def _asarray_tuplesafe(values, dtype=None):
660660

661661
return result
662662

663+
def is_integer(obj):
664+
return isinstance(obj, (int, np.integer))
665+
663666
def is_integer_dtype(arr):
664667
return issubclass(arr.dtype.type, np.integer)
665668

pandas/core/series.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1433,8 +1433,9 @@ def _align_series(series, indexer):
14331433
new_values = series.values.copy()
14341434
else:
14351435
new_values = series.values
1436-
result = Series(new_values, join_index, name=series.name)
1437-
return result
1436+
1437+
# be subclass-friendly
1438+
return series._constructor(new_values, join_index, name=series.name)
14381439

14391440
left = _align_series(self, lidx)
14401441
right = _align_series(other, ridx)

pandas/sparse/api.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
from pandas.sparse.array import SparseArray
2+
from pandas.sparse.series import SparseSeries
3+
from pandas.sparse.frame import SparseDataFrame
4+
from pandas.sparse.panel import SparsePanel

0 commit comments

Comments
 (0)