id,node_id,number,title,user,state,locked,assignee,milestone,comments,created_at,updated_at,closed_at,author_association,active_lock_reason,draft,pull_request,body,reactions,performed_via_github_app,state_reason,repo,type 608536405,MDU6SXNzdWU2MDg1MzY0MDU=,4013,Subset from conditional coordinates,42118783,closed,0,,,6,2020-04-28T18:49:12Z,2020-04-30T17:51:23Z,2020-04-28T20:21:05Z,NONE,,,,"#### Description Maybe this functionality already exists in some way, but I haven't seen an obvious way to do it. Frequently I want to retrieve a subset of a dataset where I don't know exactly the index. For example if I have two coordinates x and y, I want to provide conditions like x< 100 & x>3, y >=2. Some functions like this exist in the Dplyr package in r using the filter function (e.x. filter(ds, x>= 100 | x <-1). Is such a thing possible using a function in xarray or must I build the boolean index myself using something like ds[np.meshgrid(ds.x < 100 , ds.y>5)]? Notice the desired functionality is a lot like xr.where except the conditions are on the coordinates and instead of returning a mask, the function should return a smaller dataframe, if possible. ```python ds = xr.Dataset({'foo': (('x', 'y'), np.random.rand(4, 4))}, coords={'x': [10, 20, 30, 40], 'y': [30, 40, 50, 60]}) ds.isel((ds.y>=30) & (ds.y <=50)) #doesn't work, desired functionality ``` #### Expected Output ```python xr.Dataset({'foo': (('x', 'y'), np.random.rand(4, 3))}, coords={'x': [10, 20, 30, 40], 'y': [30, 40, 50]}) ``` ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/4013/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed,13221727,issue