与this question非常相似,只是我需要同时考虑日期和时间;indexer_between_time
似乎不支持我能找到的任何日期时间格式。在
我有一个dask数据帧,如下所示:
logger_volt lat lon
time
2017-01-01 00:01:20 12.0112 37.150902 -98.362
2017-01-01 00:01:40 12.0113 37.150902 -98.362
2017-01-01 00:02:00 12.0057 37.150902 -98.362
2017-01-01 00:02:20 12.0113 37.150902 -98.362
2017-01-01 00:02:40 12.0058 37.150902 -98.362
2017-01-01 00:03:00 12.0113 37.150902 -98.362
以及以python元组的形式或列表形式在特定时间范围内屏蔽的列列表(这些范围中的数据被认为是“坏的”,应该在那里返回None
):
dqrs = [ # var start of mask end of mask
('lat', '2017-01-01 00:01:40', '2017-01-01 00:02:00'),
('lon', '2017-01-01 00:02:40', '2017-01-01 00:03:00'),
]
df = xarray.open_dataset('filename.cdf').to_dask_dataframe()
dqr_mask = (df == df) | df.isnull() # create a dummy mask that's all True
for var, start, end in dqrs:
dqr_mask |= ((df.columns == var) & (df.index >= start) & (df.index >= end))
df = df.mask(dqr_mask).compute()
df[start:end] = None
的方法不适用于此
您只需选择要修改的循环
for
中dqr_mask
的var
列。有一种方法:相关问题 更多 >
编程相关推荐