Что нового в 0.25.1 (21 августа 2019)#

Это изменения в pandas 0.25.1. См. Примечания к выпуску для полного списка изменений, включая другие версии pandas.

IO и LZMA#

Некоторые пользователи могут неосознанно иметь неполную установку Python, в которой отсутствует lzma модуль из стандартной библиотеки. В этом случае, import pandas не удалось из-за ImportError (GH 27575). pandas теперь будет предупреждать, а не вызывать ImportError если lzma модуль отсутствует. Любая последующая попытка использовать lzma методы будут вызывать RuntimeError. Возможное исправление для отсутствия lzma модуля — убедиться, что у вас есть необходимые библиотеки, а затем переустановить Python. Например, на MacOS установка Python с pyenv может привести к неполной установке Python из-за неудовлетворенных системных зависимостей во время компиляции (например, xz). Компиляция завершится успешно, но Python может завершиться ошибкой во время выполнения. Проблему можно решить, установив необходимые зависимости и затем переустановив Python.

Исправления ошибок#

Категориальный#

  • Ошибка в Categorical.fillna() который заменил бы все значения, а не только те, которые NaN (GH 26215)

Datetimelike#

  • Ошибка в to_datetime() где передача временной зоны без учёта часового пояса DatetimeArray или DatetimeIndex и utc=True неправильно возвращал результат без часового пояса (GH 27733)

  • Ошибка в Period.to_timestamp() где Period вне Timestamp границы реализации (примерно с 1677-09-21 по 2262-04-11) возвращали некорректный Timestamp вместо вызова исключения OutOfBoundsDatetime (GH 19643)

  • Ошибка при итерации по DatetimeIndex когда базовые данные доступны только для чтения (GH 28055)

Часовые пояса#

  • Ошибка в Index где массив объектов numpy с осведомленным о часовом поясе Timestamp и np.nan не вернёт DatetimeIndex (GH 27011)

Числовой#

  • Ошибка в Series.interpolate() при использовании datetime с учетом часового пояса DatetimeIndex (GH 27548)

  • Ошибка при печати отрицательных комплексных чисел с плавающей точкой вызывала IndexError (GH 27484)

  • Ошибка, где DataFrame арифметические операторы, такие как DataFrame.mul() с Series с axis=1 вызвало бы AttributeError на DataFrame больше минимального порога для вызова numexpr (GH 27636)

  • Ошибка в DataFrame арифметические операции, где отсутствующие значения в результатах были некорректно замаскированы с помощью NaN вместо Inf (GH 27464)

Преобразование#

  • Улучшены предупреждения для устаревших методов Series.real() и Series.imag() (GH 27610)

Interval#

  • Ошибка в IntervalIndex где dir(obj) вызовет ValueError (GH 27571)

Индексирование#

  • Ошибка в частичном строковом индексировании, возвращающая массив NumPy вместо Series при индексировании скаляром, например .loc['2015'] (GH 27516)

  • Разорвать цикл ссылок, включающий Index и другие классы индексов, чтобы разрешить сборку мусора объектов индекса без запуска GC. (GH 27585, GH 27840)

  • Исправлена регрессия при присвоении значений одному столбцу DataFrame с MultiIndex столбцы (GH 27841).

  • Исправление регрессии в .ix резервный вариант с IntervalIndex (GH 27865).

Отсутствует#

Ввод-вывод#

  • Избегать вызова S3File.s3 при чтении parquet, так как это было удалено в s3fs версии 0.3.0 (GH 27756)

  • Улучшенное сообщение об ошибке при передаче отрицательного заголовка pandas.read_csv() (GH 27779)

  • Следуйте min_rows опция отображения (введена в v0.25.0) корректно в HTML repr в блокноте (GH 27991).

Построение графиков#

  • Добавлен pandas_plotting_backends группа точек входа для регистрации бэкендов построения графиков. См. Бэкенды построения графиков для получения дополнительной информации (GH 26747).

  • Исправлено восстановление конвертеров даты и времени Matplotlib после вызова pandas.plotting.deregister_matplotlib_converters() (GH 27481).

  • Исправлена проблема совместимости с matplotlib при передаче pandas Index к вызову графика (GH 27775).

GroupBy/resample/rolling#

  • Исправлена регрессия в pands.core.groupby.DataFrameGroupBy.quantile() вызывает исключение при указании нескольких квантилей (GH 27526)

  • Ошибка в DataFrameGroupBy.transform() где применение лямбда-функции преобразования часового пояса приводило к потере информации о часовом поясе (GH 27496)

  • Ошибка в GroupBy.nth() где observed=False игнорировался для категориальных группировщиков (GH 26385)

  • Ошибка в оконных операциях над массивами только для чтения (GH 27766)

  • Исправлен сегфолт в .DataFrameGroupBy.quantile когда был передан недопустимый квантиль (GH 27470)

Изменение формы#

  • A KeyError теперь вызывается, если .unstack() вызывается на Series или DataFrame с плоским Index передача имени, которое не является правильным (GH 18303)

  • Ошибка merge_asof() не удалось объединить Timedelta объектами при передаче tolerance kwarg (GH 27642)

  • Ошибка в DataFrame.crosstab() когда margins установлено в True и normalize не является False, возникает ошибка. (GH 27500)

  • DataFrame.join() теперь подавляет FutureWarning когда указан параметр sort (GH 21952)

  • Ошибка в DataFrame.join() вызов исключения с массивами только для чтения (GH 27943)

Разреженный#

  • Ошибка в редукциях для Series с типами данных Sparse (GH 27080)

Другие#

  • Ошибка в Series.replace() и DataFrame.replace() при замене временных меток с учетом часового пояса с использованием словарного заменителя (GH 27720)

  • Ошибка в Series.rename() при использовании пользовательского индексатора типа. Теперь любое значение, которое не является вызываемым или похожим на словарь, рассматривается как скаляр. (GH 27814)

Участники#

Всего 5 человек внесли патчи в этот выпуск. Люди со знаком "+" рядом с именами внесли патч впервые.

  • Jeff Reback

  • Joris Van den Bossche

  • MeeseeksMachine +

  • Tom Augspurger

  • jbrockmendel