html_url,issue_url,id,node_id,user,created_at,updated_at,author_association,body,reactions,performed_via_github_app,issue
https://github.com/pydata/xarray/issues/324#issuecomment-265462343,https://api.github.com/repos/pydata/xarray/issues/324,265462343,MDEyOklzc3VlQ29tbWVudDI2NTQ2MjM0Mw==,5629061,2016-12-07T14:35:01Z,2016-12-07T14:35:01Z,NONE,"In case it is of interest to anyone, the snippet below is a **temporary and quite dirty** solution I've used to do a multi-dimensional groupby...
It runs nested groupby-apply operations over each given dimension until no further grouping needs to be done, then applies the given function ""apply_fn""
```
def nested_groupby_apply(dataarray, groupby, apply_fn):
if len(groupby) == 1:
return dataarray.groupby(groupby[0]).apply(apply_fn)
else:
return dataarray.groupby(groupby[0]).apply(nested_groupby_apply, groupby = groupby[1:], apply_fn = apply_fn)
```
Obviously performance can potentially be quite poor. Passing the dimensions to group over in order of increasing length will reduce your cost a little.","{""total_count"": 3, ""+1"": 3, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,58117200
https://github.com/pydata/xarray/issues/1143#issuecomment-264133419,https://api.github.com/repos/pydata/xarray/issues/1143,264133419,MDEyOklzc3VlQ29tbWVudDI2NDEzMzQxOQ==,5629061,2016-12-01T10:15:21Z,2016-12-01T10:15:21Z,NONE,"The pandas docs do seem to say that conversion to timedelta64[D] (or other frequencies) is possible - see: http://pandas.pydata.org/pandas-docs/stable/timedeltas.html#frequency-conversion
Also here's a more realistic example of why this is problematic for me - I have a sequence of dates and I want to calculate the difference between them in days: possible in pandas, but not possible in xarray without first reverting to pandas/numpy types
```
dates = pandas.Series([datetime.date(2016, 01, 10), datetime.date(2016, 01, 20), datetime.date(2016, 01, 25)]).astype('datetime64[ns]')
dates.diff().astype('timedelta64[D]').astype(float)
#returns
#0 NaN
#1 10.0
#2 5.0
#dtype: float6
xarray.DataArray(dates).diff(dim = 'dim_0').astype('timedelta64[D]').astype(float)
#returns
#
#array([ 8.64000000e+14, 4.32000000e+14])
#Coordinates:
# * dim_0 (dim_0) int64 1 2
```
Again the xarray result is in ns rather than days.
Thanks","{""total_count"": 1, ""+1"": 1, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,192325490
https://github.com/pydata/xarray/issues/1143#issuecomment-263626446,https://api.github.com/repos/pydata/xarray/issues/1143,263626446,MDEyOklzc3VlQ29tbWVudDI2MzYyNjQ0Ng==,5629061,2016-11-29T16:47:25Z,2016-11-29T16:47:25Z,NONE,"The conversion to timedelta64[ns] is done on this line of code:
https://github.com/pydata/xarray/blob/d66f673ab25fe0fc0483bd5d67479fc94a14e46d/xarray/core/variable.py#L169
Is there a reason behind the conversion, or could it be removed?","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,192325490
https://github.com/pydata/xarray/issues/830#issuecomment-211359862,https://api.github.com/repos/pydata/xarray/issues/830,211359862,MDEyOklzc3VlQ29tbWVudDIxMTM1OTg2Mg==,5629061,2016-04-18T12:35:59Z,2016-04-18T12:35:59Z,NONE,"Wooah, I'm so sorry, I didn't realise that `groupby()` cannot be applied to multiple dimensions yet!
So none of this works. Please ignore and I'll revisit when #818 is resolved
","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,149130368
https://github.com/pydata/xarray/issues/830#issuecomment-211357528,https://api.github.com/repos/pydata/xarray/issues/830,211357528,MDEyOklzc3VlQ29tbWVudDIxMTM1NzUyOA==,5629061,2016-04-18T12:25:43Z,2016-04-18T12:25:43Z,NONE,"Note that this new function cannot support passing of coordinates.
In fact I feel that the current `groupby()` implementation should not accept coordinates either - that should be up to the user to do in a separate step using `.sel()` or equivalent methods.
","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,149130368