Преобразовать словарь DataFrames в xarray DataArray? - PullRequest
0 голосов
/ 24 апреля 2020

Есть ли быстрый способ для этого? Я не совсем понимаю, что из документов.

то есть, как преобразовать это в 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

1 Ответ

1 голос
/ 26 апреля 2020

Это проще, чем кажется! Может быть, мы должны добавить это в документы ...

xr.Dataset(d).to_array()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...