根据特定月份选择xarray/pandas索引

问题描述 投票:0回答:2

我有一个 xarray DataArray,我想为整个时间序列选择四月、五月、六月(类似于 time.season=='JJA')。

其结构如下:

<xarray.DataArray 't2m' (time: 492, latitude: 81, longitude: 141)>

我之前选择JJA的方式是:

seasonal_data =temp_data.sel(time=temp_data['time.season']=='JJA')

我想做同样的事情,但用月份“AMJ”代替。我可以添加我可能遗漏的任何细节。

谢谢

python pandas numpy python-xarray
2个回答
27
投票

选择自定义月份的最简单方法是使用布尔掩码,例如,

def is_amj(month):
    return (month >= 4) & (month <= 6)

seasonal_data = temp_data.sel(time=is_amj(temp_data['time.month']))

请注意,您需要使用像

&
|
这样的按位运算符,因为 Python 的内置函数
and
or
不适用于向量。另外,您需要括号,因为按位运算符的优先级高于比较。


0
投票

另一种方法是使用 isin 函数:

data = temp_data.sel(time=temp_data.time.dt.month.isin([4,5,6]))
© www.soinside.com 2019 - 2024. All rights reserved.