Skip to content

Commit 7bc6455

Browse files
committed
BUG: fillna called with Series should be analogous to with dict close #1486
1 parent 7fb453a commit 7bc6455

File tree

3 files changed

+8
-2
lines changed

3 files changed

+8
-2
lines changed

RELEASE.rst

+1
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,7 @@ pandas 0.8.0
189189
- Reset index mapping when grouping Series in Cython (#1423)
190190
- Fix outer/inner DataFrame.join with non-unique indexes (#1421)
191191
- Fix MultiIndex groupby bugs with empty lower levels (#1401)
192+
- Calling fillna with a Series will have same behavior as with dict (#1486)
192193

193194
pandas 0.7.3
194195
============

pandas/core/frame.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -2749,7 +2749,7 @@ def fillna(self, value=None, method='pad', axis=0, inplace=False,
27492749
# Float type values
27502750
if len(self.columns) == 0:
27512751
return self
2752-
if isinstance(value, dict):
2752+
if isinstance(value, (dict, Series)):
27532753
result = self if inplace else self.copy()
27542754
for k, v in value.iteritems():
27552755
if k not in result:

pandas/tests/test_frame.py

+6-1
Original file line numberDiff line numberDiff line change
@@ -3848,7 +3848,7 @@ def test_fillna_inplace(self):
38483848
self.assert_(df2 is df)
38493849
assert_frame_equal(df2, expected)
38503850

3851-
def test_fillna_dict(self):
3851+
def test_fillna_dict_series(self):
38523852
df = DataFrame({'a': [nan, 1, 2, nan, nan],
38533853
'b': [1, 2, 3, nan, nan],
38543854
'c': [nan, 1, 2, 3, 4]})
@@ -3863,6 +3863,11 @@ def test_fillna_dict(self):
38633863
# it works
38643864
result = df.fillna({'a': 0, 'b': 5, 'd' : 7})
38653865

3866+
# Series treated same as dict
3867+
result = df.fillna(df.max())
3868+
expected = df.fillna(df.max().to_dict())
3869+
assert_frame_equal(result, expected)
3870+
38663871
def test_fillna_columns(self):
38673872
df = DataFrame(np.random.randn(10, 10))
38683873
df.values[:, ::2] = np.nan

0 commit comments

Comments
 (0)