編輯2016-01-24:此行爲來自xarray中的錯誤(當時稱爲'xray')。請參閱下面的skc answer。Python xarray:在時間序列的每個月內提取第一個和最後一個時間值
我有一個xarray.DataArray
包括跨越多年的每日數據。我想計算時間序列中每個月的數據時間趨勢。我可以使用resample
得到分子,即每個月的數量變化。假設arr
是我xarray.DataArray
對象,隨着時間的座標命名'time'
:
data_first = arr.resample('1M', 'time' how='first')
data_last = arr.resample('1M', 'time' how='last')
然後data_last - data_first
讓我超過該月該變量的變化。
但是,這不適用於time=arr.time
對象本身:'first'
和'last'
kwarg值都會產生相同的值,即該月的最後一天。另外,我不能使用groupby
方法,因爲當我想要時間序列中每個月的第一個和最後一個時間值時,與time.month
一起組合所有Januaries,所有Februaries在一起等等。
有沒有一種簡單的方法在xarray中做到這一點?我懷疑是的,但是我對這個軟件包很陌生,而且失敗了。
skc在這裏的答案絕對是現在正確的工作。但是,這種行爲絕對是一個錯誤 - 與這些問題的原因相同:https://github.com/xray/xray/issues/634 https://github.com/xray/xray/issues/367 看起來我需要優先考慮重構:)。 – shoyer