Как вызвать функцию groupby xarray для группировки данных по комбинации года и месяца - PullRequest
0 голосов
/ 20 февраля 2019

У меня есть объект DataArray для ежедневного набора данных, охватывающего несколько лет.Это имеет одну переменную и три измерения с именами latitude, longitude и time (ежедневно).Временные координаты похожи на time (time) datetime64[ns] 2016-01-01 2016-01-02 ... 2018-12-31

Я хотел бы сгруппировать данные по комбинации года и месяца с помощью функции группировки в DataArray.Но следующий код дает мне только временные координаты в int64, говоря 1, 2, 3, ..., 12.

da_groupby_monthly = da.groupby('time.month').sum('time')
print(da_groupby_monthly)

Вывод:

<xarray.DataArray (month: 12, latitude: 106, longitude: 193)>
dask.array<shape=(12, 106, 193), dtype=int32, chunksize=(1, 106, 193)>
Coordinates:
  * latitude   (latitude) float32 -39.2 -39.149525 ... -33.950478 -33.9
  * longitude  (longitude) float32 140.8 140.84792 140.89584 ... 149.95209 150.0
  * month      (month) int64 1 2 3 4 5 6 7 8 9 10 11 12

Какоставьте тип данных времени datetime64[ns] и задайте координаты месяца, например, "2016-01", "2016-02", "2016-03", ... ..., "2018-12" ии так далее.

1 Ответ

0 голосов
/ 20 февраля 2019

Мне нравится использовать метод повторной выборки.Попробуйте это:

da_monthly  = da.resample('1m', on='time').sum()
...