Is there a fast method for this? I'm not quite getting that from the docs.
i.e. how to convert this to 3d xarray object with all the labels?
d = {x: pd.DataFrame(np.random.randn(4, 3)) for x in [1,2,3]}
def dict_of_df_to_xarray(d, key_name=None):
import xarray
keys = list(sorted(d.keys()))
df = d[keys[0]]
ind = df.index
if key_name is None:
key_name = 'key'
columns = df.columns
index_name = df.index.name
if index_name is None:
index_name = 'index'
column_name = df.columns.name
if column_name is None:
column_name = 'column'
df = xarray.DataArray(np.concatenate([d[k].values[:, :, None] for k in keys], axis=2), dims=[index_name, column_name,
key_name], coords={index_name: ind, column_name: columns, key_name: keys})
return df
d2 = pd.concat([v for v in d.values()]).to_xarray()maybe.xr.Dataset(d).to_array()?