Как мне правильно использовать pandas infer_objects (ст. 2.2.3)Python

Программы на Python
Ответить
Anonymous
 Как мне правильно использовать pandas infer_objects (ст. 2.2.3)

Сообщение Anonymous »

Я пробую следующий пример в Pandas 2.2.3:

Код: Выделить всё

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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»