Xarray использует массивы numpy / dask под капотом, поэтому автоматическое расширение не поддерживается (как в Pandas).
Если вы заранее знаете имена и количество столбцов, вы можете заранее создать полную область. Э.Г.
demo_results = np.zeros([10, 20, 6])
cols = ['c1', 'c2', 'c3', 'c4', 'c5', 'c6']
t = xr.DataArray(demo_results, coords={'sim': cols}, dims=('run', 'year', 'sim'))
t.loc[{'sim': 'c6'}] = -999. # or whatever value you like
Обратите внимание, это не будет работать, если вы используете dask-массивы, которые не поддерживают назначение элементов.
Если вы используете dask, не можете создать полный массив раньше времени, вы всегда можете использовать xarray.concat
:
demo_results = np.zeros([10, 20, 1]) - 999.
cols = ['c6']
t6 = xr.DataArray(demo_results, coords={'sim': cols}, dims=('run', 'year', 'sim'))
# concat old+new
t = xr.concat([t, t6], dim='sim')