我有一个Pandas DataFrame,其中包含热带气旋(TC)位置、强度和时间的记录。它是这样安排的:
的数据
这里的相关数据包括CY,它本质上是该年盆地中TC的唯一标识符编号,以及YYYYMMDDHH列,它是输入观测的日期。
我想确定72小时后数据库中存在的 Storm 的日期。目前我正在尝试做以下类型的事情:
deck.loc[((deck['BASIN'] == deck['BASIN']) & (deck['CY'] == deck['CY'])
& (len(deck['YYYYMMDDHH'] == (deck['YYYYMMDDHH'] + datetime.timedelta(hours=72)))) > 0)]
字符串
然而,这并没有给我我想要的布尔序列的索引。我也考虑过一行一行地做事情,但要知道这违背了Pandas的哲学。
2条答案
按热度按时间ztigrdn81#
由于您将数据作为图像发布,因此我重新创建了一个简单的示例。
我们在检查每次 Storm 的最后时间减去当前时间是否大于或等于72小时
字符串
1sbrub3j2#
使用xarray包(基本上是多维数据的pandas),您可以首先将数据集表示为具有单个时间维度的
xarray.Dataset
对象ds
,并将basin
和CY
指定为该维度沿着坐标。我认为其他一切都是数据变量。那么你的操作可能会像这样表达:
字符串