issues
15 rows where comments = 3, type = "issue" and user = 5635139 sorted by updated_at descending
This data as json, CSV (advanced)
Suggested facets: state_reason, created_at (date), updated_at (date), closed_at (date)
| 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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1995489227 | I_kwDOAMm_X8528L_L | 8455 | Errors when assigning using `.from_pandas_multiindex` | max-sixty 5635139 | closed | 0 | 3 | 2023-11-15T20:09:15Z | 2023-12-04T19:10:12Z | 2023-12-04T19:10:11Z | MEMBER | What happened?Very possibly this is user-error, forgive me if so. I'm trying to transition some code from the previous assignment of MultiIndexes, to the new world. Here's an MCVE: What did you expect to happen?No response Minimal Complete Verifiable Example```Python da = xr.tutorial.open_dataset("air_temperature")['air'] old code, works, but with a warningda.expand_dims('foo').assign_coords(foo=(pd.MultiIndex.from_tuples([(1,2)]))) <ipython-input-25-f09b7f52bb42>:1: FutureWarning: the new code — seems to get confused between the number of values in the index — 1 — and the number of levels — 3 including the parent:da.expand_dims('foo').assign_coords(foo=xr.Coordinates.from_pandas_multiindex(pd.MultiIndex.from_tuples([(1,2)]), dim='foo'))ValueError Traceback (most recent call last) Cell In[26], line 1 ----> 1 da.expand_dims('foo').assign_coords(foo=xr.Coordinates.from_pandas_multiindex(pd.MultiIndex.from_tuples([(1,2)]), dim='foo')) File ~/workspace/xarray/xarray/core/common.py:621, in DataWithCoords.assign_coords(self, coords, **coords_kwargs) 618 else: 619 results = self._calc_assign_results(coords_combined) --> 621 data.coords.update(results) 622 return data File ~/workspace/xarray/xarray/core/coordinates.py:566, in Coordinates.update(self, other) 560 # special case for PandasMultiIndex: updating only its dimension coordinate 561 # is still allowed but depreciated. 562 # It is the only case where we need to actually drop coordinates here (multi-index levels) 563 # TODO: remove when removing PandasMultiIndex's dimension coordinate. 564 self._drop_coords(self._names - coords_to_align._names) --> 566 self._update_coords(coords, indexes) File ~/workspace/xarray/xarray/core/coordinates.py:834, in DataArrayCoordinates._update_coords(self, coords, indexes) 832 coords_plus_data = coords.copy() 833 coords_plus_data[_THIS_ARRAY] = self._data.variable --> 834 dims = calculate_dimensions(coords_plus_data) 835 if not set(dims) <= set(self.dims): 836 raise ValueError( 837 "cannot add coordinates with new dimensions to a DataArray" 838 ) File ~/workspace/xarray/xarray/core/variable.py:3014, in calculate_dimensions(variables) 3012 last_used[dim] = k 3013 elif dims[dim] != size: -> 3014 raise ValueError( 3015 f"conflicting sizes for dimension {dim!r}: " 3016 f"length {size} on {k!r} and length {dims[dim]} on {last_used!r}" 3017 ) 3018 return dims ValueError: conflicting sizes for dimension 'foo': length 1 on <this-array> and length 3 on {'lat': 'lat', 'lon': 'lon', 'time': 'time', 'foo': 'foo'} ``` MVCE confirmation
Relevant log outputNo response Anything else we need to know?No response Environment
INSTALLED VERSIONS
------------------
commit: None
python: 3.9.18 (main, Nov 2 2023, 16:51:22)
[Clang 14.0.3 (clang-1403.0.22.14.1)]
python-bits: 64
OS: Darwin
OS-release: 22.6.0
machine: arm64
processor: arm
byteorder: little
LC_ALL: en_US.UTF-8
LANG: None
LOCALE: ('en_US', 'UTF-8')
libhdf5: None
libnetcdf: None
xarray: 2023.10.2.dev10+gccc8f998
pandas: 2.1.1
numpy: 1.25.2
scipy: 1.11.1
netCDF4: None
pydap: None
h5netcdf: None
h5py: None
Nio: None
zarr: 2.16.0
cftime: None
nc_time_axis: None
PseudoNetCDF: None
iris: None
bottleneck: None
dask: 2023.4.0
distributed: 2023.7.1
matplotlib: 3.5.1
cartopy: None
seaborn: None
numbagg: 0.2.3.dev30+gd26e29e
fsspec: 2021.11.1
cupy: None
pint: None
sparse: None
flox: None
numpy_groupies: 0.9.19
setuptools: 68.2.2
pip: 23.3.1
conda: None
pytest: 7.4.0
mypy: 1.6.0
IPython: 8.15.0
sphinx: 4.3.2
|
{
"url": "https://api.github.com/repos/pydata/xarray/issues/8455/reactions",
"total_count": 0,
"+1": 0,
"-1": 0,
"laugh": 0,
"hooray": 0,
"confused": 0,
"heart": 0,
"rocket": 0,
"eyes": 0
} |
not_planned | xarray 13221727 | issue | ||||||
| 1885042937 | I_kwDOAMm_X85wW3j5 | 8157 | Doc build fails on pandas docstring | max-sixty 5635139 | closed | 0 | 3 | 2023-09-07T03:14:25Z | 2023-09-15T13:26:26Z | 2023-09-15T13:26:26Z | MEMBER | What is your issue?It looks like the doc build is failing on a pandas docstring: ``` /home/docs/checkouts/readthedocs.org/user_builds/xray/conda/8156/lib/python3.10/site-packages/cartopy/io/init.py:241: DownloadWarning: Downloading: https://naturalearth.s3.amazonaws.com/50m_physical/ne_50m_coastline.zip warnings.warn(f'Downloading: {url}', DownloadWarning) reading sources... [ 99%] user-guide/reshaping reading sources... [ 99%] user-guide/terminology reading sources... [ 99%] user-guide/time-series reading sources... [ 99%] user-guide/weather-climate reading sources... [100%] whats-new /home/docs/checkouts/readthedocs.org/user_builds/xray/conda/8156/lib/python3.10/site-packages/pandas/core/indexes/base.py:docstring of pandas.core.indexes.base.Index.join:14: WARNING: Inline literal start-string without end-string. /home/docs/checkouts/readthedocs.org/user_builds/xray/conda/8156/lib/python3.10/site-packages/pandas/core/indexes/base.py:docstring of pandas.core.indexes.base.Index.join:15: WARNING: Inline literal start-string without end-string. looking for now-outdated files... none found ``` (also including the cartopy warning in case that's relevant) Is this expected? Is anyone familiar enough with the doc build to know whether we can disable warnings from 3rd party modules? |
{
"url": "https://api.github.com/repos/pydata/xarray/issues/8157/reactions",
"total_count": 0,
"+1": 0,
"-1": 0,
"laugh": 0,
"hooray": 0,
"confused": 0,
"heart": 0,
"rocket": 0,
"eyes": 0
} |
completed | xarray 13221727 | issue | ||||||
| 1221918917 | I_kwDOAMm_X85I1QDF | 6551 | Mypy workflow failing | max-sixty 5635139 | closed | 0 | 3 | 2022-04-30T20:53:14Z | 2022-05-26T21:50:52Z | 2022-05-26T21:40:01Z | MEMBER | What is your issue?I can't work out what is causing this, and can't repro locally, though I've tried to ensure the same things are installed. The bisect is: - Passes: https://github.com/pydata/xarray/runs/6233389985?check_suite_focus=true - Fails: https://github.com/pydata/xarray/runs/6237267544?check_suite_focus=true Probably we have to skip it in the meantime, which is a shame Is there a better way of locking the dependency versions so we can rule that out? I generally don't use conda, and poetry is great at this. Is there a conda equivalent? |
{
"url": "https://api.github.com/repos/pydata/xarray/issues/6551/reactions",
"total_count": 0,
"+1": 0,
"-1": 0,
"laugh": 0,
"hooray": 0,
"confused": 0,
"heart": 0,
"rocket": 0,
"eyes": 0
} |
completed | xarray 13221727 | issue | ||||||
| 1117934813 | I_kwDOAMm_X85ColTd | 6206 | Remove stable branch? | max-sixty 5635139 | closed | 0 | 3 | 2022-01-28T23:28:04Z | 2022-01-30T22:19:08Z | 2022-01-30T22:19:08Z | MEMBER | Is your feature request related to a problem?Currently https://github.com/pydata/xarray/blob/main/HOW_TO_RELEASE.md has a few steps around the stable branch Describe the solution you'd likeIn our dev call, we discussed the possibility of using IIRC there's something we can do on RTD to make that replacement. (If anyone knows to hand, comment here; otherwise I can search for it). Is there anything else we need to do apart from RTD? Describe alternatives you've consideredNo response Additional contextNo response |
{
"url": "https://api.github.com/repos/pydata/xarray/issues/6206/reactions",
"total_count": 2,
"+1": 2,
"-1": 0,
"laugh": 0,
"hooray": 0,
"confused": 0,
"heart": 0,
"rocket": 0,
"eyes": 0
} |
completed | xarray 13221727 | issue | ||||||
| 575080574 | MDU6SXNzdWU1NzUwODA1NzQ= | 3825 | Accept lambda in methods with one obvious xarray argument | max-sixty 5635139 | closed | 0 | 3 | 2020-03-04T01:52:46Z | 2020-03-20T17:14:20Z | 2020-03-20T17:14:20Z | MEMBER | Branching from https://github.com/pydata/xarray/issues/3770 Here's the proposal: allow lambdas on methods where the primary argument is a single xarray object, and interpret lambas as though they'd be supplied in a ```python In [1]: import xarray as xr In [2]: import numpy as np In [3]: da = xr.DataArray(np.random.rand(2,3)) In [4]: da.where(da > 0.5) this should be equivalent (currently not valid)In [5]: da.where(lambda x: x > 0.5) the longer version (currently works)In [5]: da.pipe(lambda x: x.where(x > 0.5)) ``` Others I miss from pandas: |
{
"url": "https://api.github.com/repos/pydata/xarray/issues/3825/reactions",
"total_count": 0,
"+1": 0,
"-1": 0,
"laugh": 0,
"hooray": 0,
"confused": 0,
"heart": 0,
"rocket": 0,
"eyes": 0
} |
completed | xarray 13221727 | issue | ||||||
| 469983439 | MDU6SXNzdWU0Njk5ODM0Mzk= | 3144 | h5py raising on xr.show_versions() | max-sixty 5635139 | closed | 0 | 3 | 2019-07-18T20:51:26Z | 2019-07-20T06:18:48Z | 2019-07-20T06:18:48Z | MEMBER | Any ideas why ```python In [4]: import xarray as xr In [5]: xr.show_versions()ModuleNotFoundError Traceback (most recent call last) /usr/local/lib/python3.7/site-packages/xarray/util/print_versions.py in netcdf_and_hdf5_versions() 64 try: ---> 65 import netCDF4 66 libhdf5_version = netCDF4.hdf5libversion ModuleNotFoundError: No module named 'netCDF4' During handling of the above exception, another exception occurred: AttributeError Traceback (most recent call last) <ipython-input-5-6f391305f2fe> in <module> ----> 1 xr.show_versions() /usr/local/lib/python3.7/site-packages/xarray/util/print_versions.py in show_versions(file) 78 sys_info = get_sys_info() 79 ---> 80 sys_info.extend(netcdf_and_hdf5_versions()) 81 82 deps = [ /usr/local/lib/python3.7/site-packages/xarray/util/print_versions.py in netcdf_and_hdf5_versions() 69 try: 70 import h5py ---> 71 libhdf5_version = h5py.hdf5libversion 72 except ImportError: 73 pass AttributeError: module 'h5py' has no attribute 'hdf5libversion' ``` I check I'm on the latest h5py:
|
{
"url": "https://api.github.com/repos/pydata/xarray/issues/3144/reactions",
"total_count": 0,
"+1": 0,
"-1": 0,
"laugh": 0,
"hooray": 0,
"confused": 0,
"heart": 0,
"rocket": 0,
"eyes": 0
} |
completed | xarray 13221727 | issue | ||||||
| 170305429 | MDU6SXNzdWUxNzAzMDU0Mjk= | 957 | BUG: Repr on inherited classes is incorrect | max-sixty 5635139 | closed | 0 | 3 | 2016-08-10T00:58:46Z | 2019-02-26T01:28:23Z | 2019-02-26T01:28:23Z | MEMBER | This is extremely minor, I generally wouldn't report it. We're using classes inherited from The top of the repr is incorrect
Could just be the qualified name. |
{
"url": "https://api.github.com/repos/pydata/xarray/issues/957/reactions",
"total_count": 0,
"+1": 0,
"-1": 0,
"laugh": 0,
"hooray": 0,
"confused": 0,
"heart": 0,
"rocket": 0,
"eyes": 0
} |
completed | xarray 13221727 | issue | ||||||
| 314241348 | MDU6SXNzdWUzMTQyNDEzNDg= | 2056 | Warning on supplying a Dataset to the Dataset constructor | max-sixty 5635139 | closed | 0 | 3 | 2018-04-13T20:31:12Z | 2018-11-07T15:40:49Z | 2018-11-07T15:40:49Z | MEMBER | ```python In [1]: import xarray as xr In [3]: ds=xr.Dataset({'a':xr.DataArray([1,2,3])}) In [4]: xr.Dataset(ds) /Users/maximilian/drive/workspace/xarray/xarray/core/dataset.py:373: FutureWarning: iteration over an xarray.Dataset will change in xarray v0.11 to only include data variables, not coordinates. Iterate over the Dataset.variables property instead to preserve existing behavior in a forwards compatible manner. both_data_and_coords = [k for k in data_vars if k in coords] Out[4]: <xarray.Dataset> Dimensions: (dim_0: 3) Dimensions without coordinates: dim_0 Data variables: a (dim_0) int64 1 2 3 ``` Problem descriptionCurrently we run More importantly: this raises the question of how we should handle I don't have a strong view. If you think that Expected OutputOutput of
|
{
"url": "https://api.github.com/repos/pydata/xarray/issues/2056/reactions",
"total_count": 0,
"+1": 0,
"-1": 0,
"laugh": 0,
"hooray": 0,
"confused": 0,
"heart": 0,
"rocket": 0,
"eyes": 0
} |
completed | xarray 13221727 | issue | ||||||
| 366510937 | MDU6SXNzdWUzNjY1MTA5Mzc= | 2460 | Update docs to include how to Join using a non-index coord | max-sixty 5635139 | open | 0 | max-sixty 5635139 | 3 | 2018-10-03T20:19:15Z | 2018-11-01T15:37:44Z | MEMBER | I originally posted this on SO, as I thought it was a user question rather than a library issue. But after working on it more today, I'm not so sure. I'm trying to do a 'join' in xarray, but using a non-index coordinate rather than a shared dim. I have a Dataset indexed on 'a' with a coord on 'b', and a DataArray indexed on 'b': ```python In [17]: ds=xr.Dataset(dict(a=(('x'),np.random.rand(10))), coords=dict(b=(('x'),list(range(10))))) In [18]: ds Out[18]: <xarray.Dataset> Dimensions: (x: 10) Coordinates: b (x) int64 0 1 2 3 4 5 6 7 8 9 Dimensions without coordinates: x Data variables: a (x) float64 0.3634 0.2132 0.6945 0.5359 0.1053 0.07045 0.5945 ... In [19]: da=xr.DataArray(np.random.rand(10), dims=('b',), coords=dict(b=(('b'),list(range(10))))) In [20]: da Out[20]: <xarray.DataArray (b: 10)> array([0.796987, 0.275992, 0.747882, 0.240374, 0.435143, 0.285271, 0.753582, 0.556038, 0.365889, 0.434844]) Coordinates: * b (b) int64 0 1 2 3 4 5 6 7 8 9 ``` Can I add da onto my dataset, by joining on ds.b equalling da.b? The result would be:
(for completeness - the data isn't current in the correct position) |
{
"url": "https://api.github.com/repos/pydata/xarray/issues/2460/reactions",
"total_count": 0,
"+1": 0,
"-1": 0,
"laugh": 0,
"hooray": 0,
"confused": 0,
"heart": 0,
"rocket": 0,
"eyes": 0
} |
xarray 13221727 | issue | |||||||
| 115970964 | MDU6SXNzdWUxMTU5NzA5NjQ= | 651 | DOC: minor break in doc build? | max-sixty 5635139 | closed | 0 | 3 | 2015-11-09T21:30:01Z | 2017-12-10T02:30:12Z | 2017-12-10T02:30:12Z | MEMBER | http://xray.readthedocs.org/en/stable/generated/xray.DataArray.count.html
|
{
"url": "https://api.github.com/repos/pydata/xarray/issues/651/reactions",
"total_count": 0,
"+1": 0,
"-1": 0,
"laugh": 0,
"hooray": 0,
"confused": 0,
"heart": 0,
"rocket": 0,
"eyes": 0
} |
completed | xarray 13221727 | issue | ||||||
| 122384593 | MDU6SXNzdWUxMjIzODQ1OTM= | 680 | Shorter repr for DataArrays with many coordinates & dims | max-sixty 5635139 | closed | 0 | 3 | 2015-12-15T22:44:32Z | 2017-01-21T03:32:12Z | 2017-01-21T03:32:12Z | MEMBER | This is the ``` python <xray.DataArray (a: 2, b: 2, c: 5, d: 6771, e: 58)> array([[[[[ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], ..., [ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan], [ nan, nan, nan, ..., nan, nan, nan]],
Coordinates: ... ``` |
{
"url": "https://api.github.com/repos/pydata/xarray/issues/680/reactions",
"total_count": 0,
"+1": 0,
"-1": 0,
"laugh": 0,
"hooray": 0,
"confused": 0,
"heart": 0,
"rocket": 0,
"eyes": 0
} |
completed | xarray 13221727 | issue | ||||||
| 154818715 | MDU6SXNzdWUxNTQ4MTg3MTU= | 847 | Dataset constructor fails if values are objects | max-sixty 5635139 | closed | 0 | 3 | 2016-05-13T23:27:50Z | 2016-08-12T06:06:18Z | 2016-08-12T06:06:18Z | MEMBER | For an item to be a value in a Dataset, it either needs to be array-like, or pass I think this is probably too strict - I'd propose anything can be a value, and it only gets treated as an array if it looks like one - thoughts? Here's the code that checks the values: https://github.com/pydata/xarray/blob/master/xarray/core/variable.py#L52 ``` python In [13]: class B(object): pass ....: In [14]: xr.Dataset({'a':B()})ValueError Traceback (most recent call last) <ipython-input-14-b2eeb6de19ea> in <module>() ----> 1 xr.Dataset({'a':B()}) /Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/xarray/core/dataset.py in init(self, data_vars, coords, attrs, compat, **kwargs) 207 coords = set() 208 if data_vars is not None or coords is not None: --> 209 self._set_init_vars_and_dims(data_vars, coords, compat) 210 if attrs is not None: 211 self.attrs = attrs /Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/xarray/core/dataset.py in _set_init_vars_and_dims(self, vars, coords, compat) 258 aligned = align_variables(variables) 259 new_variables, new_coord_names = expand_variables(aligned, --> 260 compat=compat) 261 262 new_coord_names.update(coords) /Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/xarray/core/merge.py in expand_variables(raw_variables, old_variables, compat) 75 add_variable(dim, coord.variable) 76 var = var.variable ---> 77 add_variable(name, var) 78 79 return new_variables, new_coord_names /Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/xarray/core/merge.py in add_variable(name, var) 55 56 def add_variable(name, var): ---> 57 var = _as_dataset_variable(name, var) 58 if name not in variables: 59 variables[name] = var /Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/xarray/core/merge.py in _as_dataset_variable(name, var) 9 """ 10 try: ---> 11 var = as_variable(var, key=name) 12 except TypeError: 13 raise TypeError('variables must be given by arrays or a tuple of ' /Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/xarray/core/variable.py in as_variable(obj, key, strict, copy) 55 obj = Variable(obj.name, obj) 56 elif key is not None: ---> 57 obj = Variable(key, obj) 58 else: 59 raise TypeError('cannot infer Variable dimensions') /Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/xarray/core/variable.py in init(self, dims, data, attrs, encoding, fastpath) 211 """ 212 self._data = as_compatible_data(data, fastpath=fastpath) --> 213 self._dims = self._parse_dimensions(dims) 214 self._attrs = None 215 self._encoding = None /Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/xarray/core/variable.py in _parse_dimensions(self, dims) 319 raise ValueError('dimensions %s must have the same length as the ' 320 'number of data dimensions, ndim=%s' --> 321 % (dims, self.ndim)) 322 return dims 323 ValueError: dimensions ('a',) must have the same length as the number of data dimensions, ndim=0 ``` |
{
"url": "https://api.github.com/repos/pydata/xarray/issues/847/reactions",
"total_count": 0,
"+1": 0,
"-1": 0,
"laugh": 0,
"hooray": 0,
"confused": 0,
"heart": 0,
"rocket": 0,
"eyes": 0
} |
completed | xarray 13221727 | issue | ||||||
| 160466764 | MDU6SXNzdWUxNjA0NjY3NjQ= | 883 | ENH: Allow ds selection with callable? | max-sixty 5635139 | closed | 0 | 3 | 2016-06-15T16:31:35Z | 2016-08-02T17:51:43Z | 2016-08-02T17:51:43Z | MEMBER | Inspired by: https://github.com/pydata/xarray/pull/844. This is a more general case for variable selection. We could allow a selection of variables with a callable, similar (but not the same) as pandas' implementation: ``` python In [5]: ds=xr.Dataset({'a': (('x', 'y'), np.random.rand(10,2))}) Out[4]: <xarray.Dataset> Dimensions: (x: 10, y: 2) Coordinates: * x (x) int64 0 1 2 3 4 5 6 7 8 9 * y (y) int64 0 1 Data variables: a (x, y) float64 0.5819 0.1214 0.2645 0.9053 0.6968 0.1608 0.3199 ... In [9]: ds['a'].attrs['clean'] = True potentially:In [10]: ds[lambda x: x.attrs['clean']] ... would return ds['a']``` This would mean functions wouldn't be able to be dataset keys - I don't think that's a big issue, but could arise with callable classes, for example. Another option would be a |
{
"url": "https://api.github.com/repos/pydata/xarray/issues/883/reactions",
"total_count": 0,
"+1": 0,
"-1": 0,
"laugh": 0,
"hooray": 0,
"confused": 0,
"heart": 0,
"rocket": 0,
"eyes": 0
} |
completed | xarray 13221727 | issue | ||||||
| 156073920 | MDU6SXNzdWUxNTYwNzM5MjA= | 853 | TST: Py.test | max-sixty 5635139 | closed | 0 | 3 | 2016-05-21T00:34:59Z | 2016-05-24T19:24:44Z | 2016-05-24T19:24:44Z | MEMBER | What do we think about switching to py.test? Current tests pass with py.test. Then we can use its features for new tests, while the old ones will continue working. |
{
"url": "https://api.github.com/repos/pydata/xarray/issues/853/reactions",
"total_count": 0,
"+1": 0,
"-1": 0,
"laugh": 0,
"hooray": 0,
"confused": 0,
"heart": 0,
"rocket": 0,
"eyes": 0
} |
completed | xarray 13221727 | issue | ||||||
| 118156114 | MDU6SXNzdWUxMTgxNTYxMTQ= | 664 | Align pandas objects added to Datasets? | max-sixty 5635139 | closed | 0 | 3 | 2015-11-21T00:37:47Z | 2015-12-08T07:23:41Z | 2015-12-08T07:23:41Z | MEMBER | We have a pandas DataFrame which is not aligned on an xray Dataset: ``` python In [34]: da = xray.DataArray( np.random.rand(5,2), coords=( ('date', pd.date_range(start='2000', periods=5)), ('company', list('ab')), ) ) da Out[34]: <xray.DataArray (date: 5, company: 2)> array([[ 0.82168647, 0.93097023], [ 0.34928855, 0.23245631], [ 0.32857461, 0.12554705], [ 0.44983381, 0.27182767], [ 0.31063147, 0.52894834]]) Coordinates: * date (date) datetime64[ns] 2000-01-01 2000-01-02 2000-01-03 ... * company (company) |S1 'a' 'b' In [35]: ds = xray.Dataset({'returns': da}) ds Out[35]: <xray.Dataset> Dimensions: (company: 2, date: 5) Coordinates: * date (date) datetime64[ns] 2000-01-01 2000-01-02 2000-01-03 ... * company (company) |S1 'a' 'b' Data variables: returns (date, company) float64 0.8217 0.931 0.3493 0.2325 0.3286 ... In [36]: df=da.to_pandas()
df
Out[36]:
company a b
date rank
rank = df.rank()
rank
Out[41]:
company a b
date rank=rank.reindex(columns=list('ba'))
rank
Out[42]:
company b a
date When we add it to a Dataset, it ignores the index on the columns: ``` python In [49]: ds['rank'] = (('date','company'),rank)
ds['rank'].to_pandas()
Out[49]:
company a b
date And adding the DataFrame without supplying dims doesn't work. One solution, is to construct a DataArray out of the pandas object: ``` python In [45]: ds['rank'] = xray.DataArray(rank) ds Out[45]: <xray.Dataset> Dimensions: (company: 2, date: 5) Coordinates: * date (date) datetime64[ns] 2000-01-01 2000-01-02 2000-01-03 ... * company (company) object 'a' 'b' Data variables: returns (date, company) float64 0.8217 0.931 0.3493 0.2325 0.3286 ... rank (date, company) float64 5.0 5.0 3.0 2.0 2.0 1.0 4.0 3.0 1.0 4.0 ``` Possible additions to make this easier: - Align pandas objects that are passed in, when dims are supplied - Allow adding pandas objects to Datasets with labelled axes without supplying dims, and align those (similar to wrapping them in a DataArray constructor) What are your thoughts? |
{
"url": "https://api.github.com/repos/pydata/xarray/issues/664/reactions",
"total_count": 0,
"+1": 0,
"-1": 0,
"laugh": 0,
"hooray": 0,
"confused": 0,
"heart": 0,
"rocket": 0,
"eyes": 0
} |
completed | xarray 13221727 | issue |
Advanced export
JSON shape: default, array, newline-delimited, object
CREATE TABLE [issues] (
[id] INTEGER PRIMARY KEY,
[node_id] TEXT,
[number] INTEGER,
[title] TEXT,
[user] INTEGER REFERENCES [users]([id]),
[state] TEXT,
[locked] INTEGER,
[assignee] INTEGER REFERENCES [users]([id]),
[milestone] INTEGER REFERENCES [milestones]([id]),
[comments] INTEGER,
[created_at] TEXT,
[updated_at] TEXT,
[closed_at] TEXT,
[author_association] TEXT,
[active_lock_reason] TEXT,
[draft] INTEGER,
[pull_request] TEXT,
[body] TEXT,
[reactions] TEXT,
[performed_via_github_app] TEXT,
[state_reason] TEXT,
[repo] INTEGER REFERENCES [repos]([id]),
[type] TEXT
);
CREATE INDEX [idx_issues_repo]
ON [issues] ([repo]);
CREATE INDEX [idx_issues_milestone]
ON [issues] ([milestone]);
CREATE INDEX [idx_issues_assignee]
ON [issues] ([assignee]);
CREATE INDEX [idx_issues_user]
ON [issues] ([user]);