@@ -1241,8 +1241,19 @@ def _reindex_axes(self, axes, level, limit, method, fill_value, copy, takeable=F
12411241 labels = _ensure_index (labels )
12421242
12431243 axis = self ._get_axis_number (a )
1244- new_index , indexer = self ._get_axis (a ).reindex (
1245- labels , level = level , limit = limit , takeable = takeable )
1244+ ax = self ._get_axis (a )
1245+ try :
1246+ new_index , indexer = ax .reindex (labels , level = level ,
1247+ limit = limit , method = method , takeable = takeable )
1248+ except (ValueError ):
1249+
1250+ # catch trying to reindex a non-monotonic index with a specialized indexer
1251+ # e.g. pad, so fallback to the regular indexer
1252+ # this will show up on reindexing a not-naturally ordering series, e.g.
1253+ # Series([1,2,3,4],index=['a','b','c','d']).reindex(['c','b','g'],method='pad')
1254+ new_index , indexer = ax .reindex (labels , level = level ,
1255+ limit = limit , method = None , takeable = takeable )
1256+
12461257 obj = obj ._reindex_with_indexers (
12471258 {axis : [new_index , indexer ]}, method = method , fill_value = fill_value ,
12481259 limit = limit , copy = copy )
0 commit comments