@@ -1241,8 +1241,19 @@ def _reindex_axes(self, axes, level, limit, method, fill_value, copy, takeable=F
1241
1241
labels = _ensure_index (labels )
1242
1242
1243
1243
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
+
1246
1257
obj = obj ._reindex_with_indexers (
1247
1258
{axis : [new_index , indexer ]}, method = method , fill_value = fill_value ,
1248
1259
limit = limit , copy = copy )
0 commit comments