将 DataFrames 字典转换为 xarray DataArray?

Convert dictionary of DataFrames to xarray DataArray?

有没有快速的方法?我不太了解文档中的内容。

即如何将其转换为带有所有标签的 3d xarray 对象?

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

这比看起来容易!也许我们应该将其添加到文档中...

xr.Dataset(d).to_array()