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/3873#issuecomment-601948472,https://api.github.com/repos/pydata/xarray/issues/3873,601948472,MDEyOklzc3VlQ29tbWVudDYwMTk0ODQ3Mg==,14808389,2020-03-20T23:12:11Z,2020-03-20T23:13:25Z,MEMBER,"I agree, we should add something like that to the documentation.
I just have been trying to do the same with pure xarray, but didn't find a way to do so without falling back to either numpy or pandas or doing something really complicated (I didn't figure out how to use `where` to put `data` into `reshaped`, yet):
```python
In [150]: df = pd.DataFrame({
...: ""lat"": np.linspace(-90, 90, 10),
...: ""lon"": np.linspace(0, 360, 10),
...: ""data"": np.arange(10),
...: })
...: ds = df.to_xarray()
...: ds
Out[150]:
Dimensions: (index: 10)
Coordinates:
* index (index) int64 0 1 2 3 4 5 6 7 8 9
Data variables:
lat (index) float64 -90.0 -70.0 -50.0 -30.0 ... 30.0 50.0 70.0 90.0
lon (index) float64 0.0 40.0 80.0 120.0 ... 240.0 280.0 320.0 360.0
data (index) int64 0 1 2 3 4 5 6 7 8 9
In [151]: reshaped = (
...: ds.set_index(coordinates=[""lat"", ""lon""])
...: .unstack()
...: .stack(coordinates=[""lat"", ""lon""])
...: .coordinates
...: .unstack()
...: .where(False)
...: )
...: reshaped
Out[151]:
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, 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, 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]], dtype=object)
Coordinates:
* lat (lat) float64 -90.0 -70.0 -50.0 -30.0 -10.0 ... 30.0 50.0 70.0 90.0
* lon (lon) float64 0.0 40.0 80.0 120.0 160.0 ... 240.0 280.0 320.0 360.0
```
which is not something we would want to put into a documentation","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,585323675
https://github.com/pydata/xarray/issues/3873#issuecomment-601927475,https://api.github.com/repos/pydata/xarray/issues/3873,601927475,MDEyOklzc3VlQ29tbWVudDYwMTkyNzQ3NQ==,14808389,2020-03-20T21:57:21Z,2020-03-20T21:57:21Z,MEMBER,"to answer your question, at least partially:
```python
In [3]: df = pd.DataFrame({
...: ""lat"": np.linspace(-90, 90, 10),
...: ""lon"": np.linspace(0, 360, 10),
...: ""data"": np.arange(10),
...: })
...: df.set_index([""lat"", ""lon""]).to_xarray()
Out[3]:
Dimensions: (lat: 10, lon: 10)
Coordinates:
* lat (lat) float64 -90.0 -70.0 -50.0 -30.0 -10.0 ... 30.0 50.0 70.0 90.0
* lon (lon) float64 0.0 40.0 80.0 120.0 160.0 ... 240.0 280.0 320.0 360.0
Data variables:
data (lat, lon) float64 0.0 nan nan nan nan nan ... nan nan nan nan 9.0
```
so the levels of the multi-index of the `DataFrame` are the dimension coordinates of the `Dataset`. ","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,585323675
https://github.com/pydata/xarray/issues/3873#issuecomment-601919879,https://api.github.com/repos/pydata/xarray/issues/3873,601919879,MDEyOklzc3VlQ29tbWVudDYwMTkxOTg3OQ==,5635139,2020-03-20T21:33:19Z,2020-03-20T21:33:19Z,MEMBER,"(very much agree, and also on going the other way; there's at least one additional recent issue on this)","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,585323675