Skip to content

Commit fc14dfb

Browse files
committed
BUG: Series.align resets name when fill_value is specified
1 parent ef23df1 commit fc14dfb

File tree

3 files changed

+16
-2
lines changed

3 files changed

+16
-2
lines changed

doc/source/whatsnew/v0.17.0.txt

+5
Original file line numberDiff line numberDiff line change
@@ -59,3 +59,8 @@ Bug Fixes
5959
~~~~~~~~~
6060

6161
- Bug in ``Categorical`` repr with ``display.width`` of ``None`` in Python 3 (:issue:`10087`)
62+
63+
64+
65+
- Bug in ``Series.align`` resets ``name`` when ``fill_value`` is specified (:issue:`10067`)
66+

pandas/core/generic.py

+4-2
Original file line numberDiff line numberDiff line change
@@ -3406,6 +3406,9 @@ def _align_series(self, other, join='outer', axis=None, level=None,
34063406
else:
34073407
right_result = other.reindex(join_index, level=level)
34083408

3409+
left_result = left_result.__finalize__(self)
3410+
right_result = right_result.__finalize__(other)
3411+
34093412
# fill
34103413
fill_na = notnull(fill_value) or (method is not None)
34113414
if fill_na:
@@ -3414,8 +3417,7 @@ def _align_series(self, other, join='outer', axis=None, level=None,
34143417
right_result.fillna(fill_value, method=method,
34153418
limit=limit))
34163419
else:
3417-
return (left_result.__finalize__(self),
3418-
right_result.__finalize__(other))
3420+
return left_result, right_result
34193421

34203422
_shared_docs['where'] = ("""
34213423
Return an object of same shape as self and whose corresponding

pandas/tests/test_series.py

+7
Original file line numberDiff line numberDiff line change
@@ -5931,19 +5931,26 @@ def _check_align(a, b, how='left', fill=None):
59315931

59325932
assert_series_equal(aa, ea)
59335933
assert_series_equal(ab, eb)
5934+
self.assertEqual(aa.name, 'ts')
5935+
self.assertEqual(ea.name, 'ts')
5936+
self.assertEqual(ab.name, 'ts')
5937+
self.assertEqual(eb.name, 'ts')
59345938

59355939
for kind in JOIN_TYPES:
59365940
_check_align(self.ts[2:], self.ts[:-5], how=kind)
59375941
_check_align(self.ts[2:], self.ts[:-5], how=kind, fill=-1)
59385942

59395943
# empty left
59405944
_check_align(self.ts[:0], self.ts[:-5], how=kind)
5945+
_check_align(self.ts[:0], self.ts[:-5], how=kind, fill=-1)
59415946

59425947
# empty right
59435948
_check_align(self.ts[:-5], self.ts[:0], how=kind)
5949+
_check_align(self.ts[:-5], self.ts[:0], how=kind, fill=-1)
59445950

59455951
# both empty
59465952
_check_align(self.ts[:0], self.ts[:0], how=kind)
5953+
_check_align(self.ts[:0], self.ts[:0], how=kind, fill=-1)
59475954

59485955
def test_align_fill_method(self):
59495956
def _check_align(a, b, how='left', method='pad', limit=None):

0 commit comments

Comments
 (0)