Что сломается
🔘Цепочечное присваивание больше не работает:
# Было: работало с warning'ом
df["foo"][df["bar"] > 5] = 100
# Стало: молча НЕ работает
# Правильно:
df.loc[df["bar"] > 5, "foo"] = 100
🔘Проверки dtype:
# Было
if df['col'].dtype == object: ...
# Стало
if pd.api.types.is_string_dtype(df['col']): ...
Как мигрировать
1️⃣Обновитесь до pandas 2.3, уберите warnings
3️⃣Включите в тестах:
pd.options.future.infer_string = True3️⃣Найдите
dtype == object и цепочечные присваивания4️⃣Обновляйтесь до 3.0
Требования: Python 3.11+, NumPy 1.26.0+, PyArrow 13.0.0+
Для production лучше подождать пару недель — релиз свежий.
📎 Changelog, GitHub
@zen_of_python