Skip to content

Commit 1db53cf

Browse files
changhiskhanwesm
authored andcommitted
API: fillna method argument should be None by default and raise on both value and method #2027
1 parent 747039b commit 1db53cf

File tree

2 files changed

+10
-5
lines changed

2 files changed

+10
-5
lines changed

pandas/core/series.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2381,7 +2381,7 @@ def take(self, indices, axis=0):
23812381

23822382
truncate = generic.truncate
23832383

2384-
def fillna(self, value=None, method='pad', inplace=False,
2384+
def fillna(self, value=None, method=None, inplace=False,
23852385
limit=None):
23862386
"""
23872387
Fill NA/NaN values using the specified method
@@ -2413,6 +2413,8 @@ def fillna(self, value=None, method='pad', inplace=False,
24132413
return self.copy() if not inplace else self
24142414

24152415
if value is not None:
2416+
if method is not None:
2417+
raise ValueError('Cannot specify both a fill value and method')
24162418
result = self.copy() if not inplace else self
24172419
mask = isnull(self.values)
24182420
np.putmask(result, mask, value)

pandas/tests/test_series.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2929,20 +2929,20 @@ def test_isin(self):
29292929

29302930
def test_fillna_int(self):
29312931
s = Series(np.random.randint(-100, 100, 50))
2932-
self.assert_(s.fillna(inplace=True) is s)
2933-
assert_series_equal(s.fillna(inplace=False), s)
2932+
self.assert_(s.fillna(method='ffill', inplace=True) is s)
2933+
assert_series_equal(s.fillna(method='ffill', inplace=False), s)
29342934

29352935
#-------------------------------------------------------------------------------
29362936
# TimeSeries-specific
29372937

29382938
def test_fillna(self):
29392939
ts = Series([0., 1., 2., 3., 4.], index=tm.makeDateIndex(5))
29402940

2941-
self.assert_(np.array_equal(ts, ts.fillna()))
2941+
self.assert_(np.array_equal(ts, ts.fillna(method='ffill')))
29422942

29432943
ts[2] = np.NaN
29442944

2945-
self.assert_(np.array_equal(ts.fillna(), [0., 1., 1., 3., 4.]))
2945+
self.assert_(np.array_equal(ts.fillna(method='ffill'), [0., 1., 1., 3., 4.]))
29462946
self.assert_(np.array_equal(ts.fillna(method='backfill'),
29472947
[0., 1., 3., 3., 4.]))
29482948

@@ -2974,6 +2974,9 @@ def test_fillna_invalid_method(self):
29742974
except ValueError, inst:
29752975
self.assert_('ffil' in str(inst))
29762976

2977+
def test_fillna_toomany_params(self):
2978+
self.assertRaises(ValueError, self.ts.fillna, value=0, method='ffill')
2979+
29772980
def test_replace(self):
29782981
N = 100
29792982
ser = Series(np.random.randn(N))

0 commit comments

Comments
 (0)