@@ -872,6 +872,47 @@ def test_interp_limit_no_nans(self):
872
872
expected = s
873
873
assert_series_equal (result , expected )
874
874
875
+ def test_interp_piecewise_polynomial (self ):
876
+ # GH 10365
877
+ tm ._skip_if_no_scipy ()
878
+ s1 = Series ([1 , 2 , 3 , 4 , nan , 6 , nan ])
879
+ s2 = Series ([nan , nan , 3 , 4 , nan , 6 , 7 ])
880
+ result1 = s1 .interpolate (method = 'piecewise_polynomial' )
881
+ result2 = s2 .interpolate (method = 'piecewise_polynomial' )
882
+ expected1 = Series ([1. , 2. , 3. , 4. , 5. , 6. , 7. ])
883
+ expected2 = Series ([nan , nan , 3. , 4. , 5. , 6. , 7. ])
884
+
885
+ assert_series_equal (expected1 , result1 )
886
+ assert_series_equal (expected2 , result2 )
887
+
888
+ def test_interp_krogh (self ):
889
+ tm ._skip_if_no_scipy ()
890
+ s1 = Series ([0 , - 2 , 0 , np .nan ], index = [0 , 0 , 1 , 5 ])
891
+ s2 = Series ([nan , 0 , - 2 , 0 , np .nan ], index = [- 1 , 0 , 0 , 1 , 5 ])
892
+ s3 = Series ([nan , 0 , 0 , 0 , np .nan ], index = [- 1 , 0 , 0 , 0 , 5 ])
893
+ result1 = s1 .interpolate (method = 'krogh' )
894
+ result2 = s2 .interpolate (method = 'krogh' )
895
+ result3 = s3 .interpolate (method = 'krogh' )
896
+ expected1 = Series ([0. , - 2. , 0. , 40. ], index = [0 , 0 , 1 , 5 ])
897
+ expected2 = Series ([nan , 0. , - 2. , 0. , 40. ], index = [- 1 , 0 , 0 , 1 , 5 ])
898
+ expected3 = Series ([nan , 0. , 0. , 0. , 0. ], index = [- 1 , 0 , 0 , 0 , 5 ])
899
+
900
+ assert_series_equal (expected1 , result1 )
901
+ assert_series_equal (expected2 , result2 )
902
+ assert_series_equal (expected3 , result3 )
903
+
904
+ def test_interp_barycentric (self ):
905
+ tm ._skip_if_no_scipy ()
906
+ s1 = Series ([nan , 0 , 0 , 0 , 0 , nan ])
907
+ s2 = Series ([nan , 0 , 2 , 1 , nan ])
908
+ result1 = s1 .interpolate (method = 'barycentric' )
909
+ result2 = s2 .interpolate (method = 'barycentric' )
910
+ expected1 = Series ([nan , 0. , 0. , 0. , 0. , 0. ])
911
+ expected2 = Series ([nan , 0. , 2. , 1. , - 3. ])
912
+
913
+ assert_series_equal (expected1 , result1 )
914
+ assert_series_equal (expected2 , result2 )
915
+
875
916
def test_describe (self ):
876
917
_ = self .series .describe ()
877
918
_ = self .ts .describe ()
0 commit comments