@@ -1010,7 +1010,7 @@ def isel(self, **indexers):
10101010 variables [name ] = var .isel (** var_indexers )
10111011 return self ._replace_vars_and_dims (variables )
10121012
1013- def sel (self , method = None , ** indexers ):
1013+ def sel (self , method = None , tolerance = None , ** indexers ):
10141014 """Returns a new dataset with each array indexed by tick labels
10151015 along the specified dimension(s).
10161016
@@ -1036,6 +1036,11 @@ def sel(self, method=None, **indexers):
10361036 * pad / ffill: propgate last valid index value forward
10371037 * backfill / bfill: propagate next valid index value backward
10381038 * nearest: use nearest valid index value
1039+ tolerance : optional
1040+ Maximum distance between original and new labels for inexact
1041+ matches. The values of the index at the matching locations most
1042+ satisfy the equation ``abs(index[indexer] - target) <= tolerance``.
1043+ Requires pandas>=0.17.
10391044 **indexers : {dim: indexer, ...}
10401045 Keyword arguments with names matching dimensions and values given
10411046 by scalars, slices or arrays of tick labels.
@@ -1056,8 +1061,8 @@ def sel(self, method=None, **indexers):
10561061 Dataset.isel_points
10571062 DataArray.sel
10581063 """
1059- return self .isel (** indexing .remap_label_indexers (self , indexers ,
1060- method = method ))
1064+ return self .isel (** indexing .remap_label_indexers (
1065+ self , indexers , method = method , tolerance = tolerance ))
10611066
10621067 def isel_points (self , dim = 'points' , ** indexers ):
10631068 """Returns a new dataset with each array indexed pointwise along the
@@ -1146,7 +1151,8 @@ def relevant_keys(mapping):
11461151 zip (* [v for k , v in indexers ])]],
11471152 dim = dim , coords = coords , data_vars = data_vars )
11481153
1149- def sel_points (self , dim = 'points' , method = None , ** indexers ):
1154+ def sel_points (self , dim = 'points' , method = None , tolerance = None ,
1155+ ** indexers ):
11501156 """Returns a new dataset with each array indexed pointwise by tick
11511157 labels along the specified dimension(s).
11521158
@@ -1172,6 +1178,11 @@ def sel_points(self, dim='points', method=None, **indexers):
11721178 * pad / ffill: propagate last valid index value forward
11731179 * backfill / bfill: propagate next valid index value backward
11741180 * nearest: use nearest valid index value
1181+ tolerance : optional
1182+ Maximum distance between original and new labels for inexact
1183+ matches. The values of the index at the matching locations most
1184+ satisfy the equation ``abs(index[indexer] - target) <= tolerance``.
1185+ Requires pandas>=0.17.
11751186 **indexers : {dim: indexer, ...}
11761187 Keyword arguments with names matching dimensions and values given
11771188 by array-like objects. All indexers must be the same length and
@@ -1192,11 +1203,11 @@ def sel_points(self, dim='points', method=None, **indexers):
11921203 Dataset.isel_points
11931204 DataArray.sel_points
11941205 """
1195- pos_indexers = indexing .remap_label_indexers (self , indexers ,
1196- method = method )
1206+ pos_indexers = indexing .remap_label_indexers (
1207+ self , indexers , method = method , tolerance = tolerance )
11971208 return self .isel_points (dim = dim , ** pos_indexers )
11981209
1199- def reindex_like (self , other , method = None , copy = True ):
1210+ def reindex_like (self , other , method = None , tolerance = None , copy = True ):
12001211 """Conform this object onto the indexes of another object, filling
12011212 in missing values with NaN.
12021213
@@ -1217,6 +1228,11 @@ def reindex_like(self, other, method=None, copy=True):
12171228 * pad / ffill: propagate last valid index value forward
12181229 * backfill / bfill: propagate next valid index value backward
12191230 * nearest: use nearest valid index value (requires pandas>=0.16)
1231+ tolerance : optional
1232+ Maximum distance between original and new labels for inexact
1233+ matches. The values of the index at the matching locations most
1234+ satisfy the equation ``abs(index[indexer] - target) <= tolerance``.
1235+ Requires pandas>=0.17.
12201236 copy : bool, optional
12211237 If `copy=True`, the returned dataset contains only copied
12221238 variables. If `copy=False` and no reindexing is required then
@@ -1233,9 +1249,10 @@ def reindex_like(self, other, method=None, copy=True):
12331249 Dataset.reindex
12341250 align
12351251 """
1236- return self .reindex (method = method , copy = copy , ** other .indexes )
1252+ return self .reindex (method = method , copy = copy , tolerance = tolerance ,
1253+ ** other .indexes )
12371254
1238- def reindex (self , indexers = None , method = None , copy = True , ** kw_indexers ):
1255+ def reindex (self , indexers = None , method = None , tolerance = None , copy = True , ** kw_indexers ):
12391256 """Conform this object onto a new set of indexes, filling in
12401257 missing values with NaN.
12411258
@@ -1254,6 +1271,11 @@ def reindex(self, indexers=None, method=None, copy=True, **kw_indexers):
12541271 * pad / ffill: propagate last valid index value forward
12551272 * backfill / bfill: propagate next valid index value backward
12561273 * nearest: use nearest valid index value (requires pandas>=0.16)
1274+ tolerance : optional
1275+ Maximum distance between original and new labels for inexact
1276+ matches. The values of the index at the matching locations most
1277+ satisfy the equation ``abs(index[indexer] - target) <= tolerance``.
1278+ Requires pandas>=0.17.
12571279 copy : bool, optional
12581280 If `copy=True`, the returned dataset contains only copied
12591281 variables. If `copy=False` and no reindexing is required then
@@ -1279,7 +1301,7 @@ def reindex(self, indexers=None, method=None, copy=True, **kw_indexers):
12791301 return self .copy (deep = True ) if copy else self
12801302
12811303 variables = alignment .reindex_variables (
1282- self .variables , self .indexes , indexers , method , copy = copy )
1304+ self .variables , self .indexes , indexers , method , tolerance , copy = copy )
12831305 return self ._replace_vars_and_dims (variables )
12841306
12851307 def rename (self , name_dict , inplace = False ):
0 commit comments