【发布时间】:2018-12-31 07:35:01
【问题描述】:
我想用一个多维坐标交换两个坐标维度,这样我就可以按 time.month 执行 groupby 并减去另一个数据集。
import xarray as xr
ds = xr.Dataset()
# DataArray indexed by 'init_time' and an offset, 'tau'
ds['tst'] = xr.DataArray(
[[0, 1, 2], [3, 4, 5]],
dims=('init_time', 'tau'),
coords={
'init_time': pd.date_range('2017-01-01', periods=2),
'tau': pd.to_timedelta([1, 2, 3], unit='days')})
# multidimensional coordinate 'time'
ds.coords['time'] = ds['init_time'] + ds['tau']
ds.swap_dims({('init_time', 'tau'): 'time'})
ds
有点像这样的结果:
clim = pd.Series([2], index=[1]).rename_axis('month')
df = ds.to_dataframe().reset_index()
df['month'] = df['time'].dt.month
df = (
pd.DataFrame(
df.set_index(['init_time', 'tau', 'time', 'month'])['tst']
- clim))
df
【问题讨论】:
标签: python-xarray