Home > Net >  Can you Group XArray Data Array by Day of Month?
Can you Group XArray Data Array by Day of Month?

Time:01-25

If there was a variable in an xarray dataset with a time dimension with daily values over some multiyear time span

2017-01-01 ... 2018-12-31, then it is possible to group the data by month, or by the day of the year, using

.groupby("time.month") or .groupby("time.dayofyear")

Is there a way to efficiently group the data by the day of the month, for example if I wanted to calculate the mean value on the 21st of each month?

CodePudding user response:

See the xarray docs on the DateTimeAccessor helper object. For more info, you can also check out the xarray docs on Working with Time Series Data: Datetime Components, which in turn refers to the pandas docs on date/time components.

You're looking for day. Unfortunately, both pandas and xarray simply describe .dt.day as referring to "the days of the datetime" which isn't particularly helpful. But if you take a look at python's native datetime.Date.day definition, you'll see the more specific:

date.day
Between 1 and the number of days in the given month of the given year.

So, simply

da.groupby("time.day")

Should do the trick!

CodePudding user response:

I not sure, but maybe you can do like this:

import datetime

x = datetime.datetime.now()

day = x.strftime("%d")
month = x.strftime("%m")
year = x.strftime("%Y")

.groupby(month) or .groupby(year)
  •  Tags:  
  • Related