我正在尝试过滤 dask 数据帧以仅包含由字典定义的特定时间段,其中键是 ISO 区域,值是时间戳列表。
这是一个修改过的字典作为例子。
iso_region_dict = {'MISO-E':[Timestamp('2016-05-17 22:15:00'),Timestamp('2016-10-21 13:45:00'),Timestamp('2016-12-26 02:45:00')], 'CAISO':[Timestamp('2016-08-24 10:15:00'),Timestamp('2016-07-03 14:30:00'),Timestamp('2016-04-22 12:45:00')]}
我的 dask 数据框看起来像这样(timeseries_ddf):
building_id time electricity_cooling_kwh electricity_heating_kwh total_site_electricity_kwh iso_zone
0 2 2016-01-01 00:15:00 0.0 0.0 4.082225 MISO-E
1 2 2016-05-17 22:15:00 0.0 0.0 5.627103 MISO-E
2 2 2016-10-21 13:45:00 0.0 0.0 21.547435 MISO-E
3 2 2016-12-26 02:45:00 0.0 0.0 4.082225 MISO-E
4 2 2016-10-21 14:00:00 0.0 0.0 21.547435 MISO-E
完整的数据框有数千个建筑 ID,“时间”列采用日期时间格式,范围从 2016-1-1 到 2016-12-31,每个 building_id 的间隔为 15 分钟。我想过滤此数据框以仅包含在 iso_region_dict 中为每个 building_id 定义的时间列中的时间戳。这是一个非常大的数据框,这就是我使用 dask 的原因。
期望的输出(timeseries_discharge_ddf):
building_id time electricity_cooling_kwh electricity_heating_kwh total_site_electricity_kwh iso_zone
0 2 2016-05-17 22:15:00 0.0 0.0 5.627103 MISO-E
1 2 2016-10-21 13:45:00 0.0 0.0 21.547435 MISO-E
2 2 2016-12-26 02:45:00 0.0 0.0 4.082225 MISO-E
我用时间戳列表做了类似的事情,我只是通过以下方式过滤:
timeseries_discharge_ddf = timeseries_ddf.map_partitions(lambda x: x[x.time.isin(discharge_timestamps)])
我现在尝试实现的附加步骤是这个过滤器,但是 discharge_timestamps 列表的变化取决于 iso_zone 是什么。
BIG阳
相关分类