Skip to content

Commit b73cfd0

Browse files
committed
Merge pull request #8235 from TomAugspurger/interp-limit-nonan
BUG: interpolate with no nans and limit
2 parents 3da1f79 + 25f4822 commit b73cfd0

File tree

3 files changed

+14
-0
lines changed

3 files changed

+14
-0
lines changed

doc/source/v0.15.0.txt

+5
Original file line numberDiff line numberDiff line change
@@ -756,3 +756,8 @@ Bug Fixes
756756
- Bug with kde plot and NaNs (:issue:`8182`)
757757
- Bug in ``GroupBy.count`` with float32 data type were nan values were not excluded (:issue:`8169`).
758758
- Bug with stacked barplots and NaNs (:issue:`8175`).
759+
760+
761+
762+
- Bug in interpolation methods with the ``limit`` keyword when no values
763+
needed interpolating (:issue:`7173`).

pandas/core/common.py

+2
Original file line numberDiff line numberDiff line change
@@ -1534,6 +1534,8 @@ def interpolate_1d(xvalues, yvalues, method='linear', limit=None,
15341534
def _interp_limit(invalid, limit):
15351535
"""mask off values that won't be filled since they exceed the limit"""
15361536
all_nans = np.where(invalid)[0]
1537+
if all_nans.size == 0: # no nans anyway
1538+
return []
15371539
violate = [invalid[x:x + limit + 1] for x in all_nans]
15381540
violate = np.array([x.all() & (x.size > limit) for x in violate])
15391541
return all_nans[violate] + limit

pandas/tests/test_generic.py

+7
Original file line numberDiff line numberDiff line change
@@ -656,6 +656,13 @@ def test_interp_datetime64(self):
656656
expected = Series([1., 1., 3.], index=date_range('1/1/2000', periods=3))
657657
assert_series_equal(result, expected)
658658

659+
def test_interp_limit_no_nans(self):
660+
# GH 7173
661+
s = pd.Series([1., 2., 3.])
662+
result = s.interpolate(limit=1)
663+
expected = s
664+
assert_series_equal(result, expected)
665+
659666
def test_describe(self):
660667
_ = self.series.describe()
661668
_ = self.ts.describe()

0 commit comments

Comments
 (0)