Код: Выделить всё
outage_mask = pd.Series(([True]*5 + [False]*5)*5, index=pd.date_range("2025-01-01", freq="1h", periods=50))
[ts for ts in outage_mask.loc[outage_mask.diff().fillna(False)].index]
Будущее предупреждение: понижающее приведение массивов dtype объекта в .fillna, .ffill, . bfill устарел и будет изменен в будущей версии. Вместо этого вызовите result.infer_objects(copy=False). Чтобы согласиться на будущее поведение, установите pd.set_option('future.no_silent_downcasting', True)
Я не могу понять, как чтобы правильно применить этот infer_objects. Я предполагаю, что проблема в том, что выходные данные diff становятся объектными типами dtype из-за do, содержащими как NaN, так и bool, но, например, это не помогает:
Код: Выделить всё
[ts for ts in outage_mask.loc[outage_mask.diff().infer_objects(copy=False).fillna(False)].index]
Код: Выделить всё
[ts for ts in outage_mask.loc[outage_mask.diff().astype(float).fillna(0.).astype(bool)].index]
Подробнее здесь: https://stackoverflow.com/questions/793 ... ly-v-2-2-3
Мобильная версия