Skip to content

Commit 046e0a2

Browse files
committed
fixes issues with series functions that _must_ return a series
1 parent a194a89 commit 046e0a2

File tree

2 files changed

+11
-20
lines changed

2 files changed

+11
-20
lines changed

pandas/core/series.py

+10-19
Original file line numberDiff line numberDiff line change
@@ -217,14 +217,14 @@ def wrapper(self, other):
217217
name = _maybe_match_name(self, other)
218218
if len(self) != len(other):
219219
raise ValueError('Series lengths must match to compare')
220-
return self._constructor(na_op(self.values, other.values),
220+
return Series(na_op(self.values, other.values),
221221
index=self.index, name=name)
222222
elif isinstance(other, DataFrame): # pragma: no cover
223223
return NotImplemented
224224
elif isinstance(other, pa.Array):
225225
if len(self) != len(other):
226226
raise ValueError('Lengths must match to compare')
227-
return self._constructor(na_op(self.values, np.asarray(other)),
227+
return Series(na_op(self.values, np.asarray(other)),
228228
index=self.index, name=self.name)
229229
else:
230230
values = self.values
@@ -238,7 +238,7 @@ def wrapper(self, other):
238238
if np.isscalar(res):
239239
raise TypeError('Could not compare %s type with Series'
240240
% type(other))
241-
return self._constructor(na_op(values, other),
241+
return Series(na_op(values, other),
242242
index=self.index, name=self.name)
243243
return wrapper
244244

@@ -523,13 +523,10 @@ def __init__(self, data=None, index=None, dtype=None, name=None,
523523
pass
524524

525525
@property
526-
<<<<<<< Updated upstream
527-
=======
528526
def _constructor(self):
529527
return self.__class__
530528

531529
@property
532-
>>>>>>> Stashed changes
533530
def _can_hold_na(self):
534531
return not is_integer_dtype(self.dtype)
535532

@@ -2264,13 +2261,15 @@ def argsort(self, axis=0, kind='quicksort', order=None):
22642261
mask = isnull(values)
22652262

22662263
if mask.any():
2267-
result = self._constructor(-1,index=self.index,name=self.name,dtype='int64')
2264+
result = Series(-1,index=self.index,name=self.name,
2265+
dtype='int64')
22682266
notmask = -mask
22692267
result.values[notmask] = np.argsort(self.values[notmask], kind=kind)
22702268
return result
22712269
else:
2272-
return self._constructor(np.argsort(values, kind=kind), index=self.index,
2273-
name=self.name,dtype='int64')
2270+
return Series(np.argsort(values, kind=kind),
2271+
index=self.index,name=self.name,
2272+
dtype='int64')
22742273

22752274
def rank(self, method='average', na_option='keep', ascending=True):
22762275
"""
@@ -2654,15 +2653,7 @@ def reindex(self, index=None, method=None, level=None, fill_value=pa.NA,
26542653

26552654
def _reindex_with_indexers(self, index, indexer, copy, fill_value):
26562655
new_values = com.take_1d(self.values, indexer, fill_value=fill_value)
2657-
<<<<<<< Updated upstream
2658-
<<<<<<< Updated upstream
2659-
return Series(new_values, index=index, name=self.name)
2660-
=======
2661-
return self._constructor(new_values, index=new_index, name=self.name)
2662-
>>>>>>> Stashed changes
2663-
=======
2664-
return self._constructor(new_values, index=new_index, name=self.name)
2665-
>>>>>>> Stashed changes
2656+
return self._constructor(new_values, index=index, name=self.name)
26662657

26672658
def reindex_axis(self, labels, axis=0, **kwargs):
26682659
""" for compatibility with higher dims """
@@ -2898,7 +2889,7 @@ def isin(self, values):
28982889
"""
28992890
value_set = set(values)
29002891
result = lib.ismember(self.values, value_set)
2901-
return self._constructor(result, self.index, name=self.name)
2892+
return Series(result, self.index, name=self.name)
29022893

29032894
def between(self, left, right, inclusive=True):
29042895
"""

pandas/sparse/series.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,7 @@ def __init__(self, data, index=None, sparse_index=None, kind='block',
192192
@property
193193
def _constructor(self):
194194
def make_sp_series(data, index=None, name=None):
195-
return SparseSeries(data, index=index, fill_value=self.fill_value,
195+
return self.__class__(data, index=index, fill_value=self.fill_value,
196196
kind=self.kind, name=name)
197197

198198
return make_sp_series

0 commit comments

Comments
 (0)