Что нового в версии 0.23.2 (5 июля 2018)#
Это минорный релиз с исправлениями ошибок в серии 0.23.x и включает некоторые небольшие исправления регрессий и исправления ошибок. Мы рекомендуем всем пользователям обновиться до этой версии.
Примечание
pandas 0.23.2 — первая версия pandas, совместимая с Python 3.7 (GH 20552)
Предупреждение
Начиная с 1 января 2019 года, релизы функций pandas будут поддерживать только Python 3. См. Удаление Python 2.7 подробнее.
Что нового в v0.23.2
Логические редукции по всему DataFrame#
DataFrame.all() и DataFrame.any() теперь принимают axis=None для сокращения по всем осям до скаляра (GH 19976)
In [1]: df = pd.DataFrame({"A": [1, 2], "B": [True, False]})
In [2]: df.all(axis=None)
Out[2]: False
Это также обеспечивает совместимость с NumPy 1.15, который теперь передает в DataFrame.all.
С NumPy 1.15 и pandas 0.23.1 или более ранними, numpy.all() больше не будет сокращаться по каждой оси:
>>> # NumPy 1.15, pandas 0.23.1
>>> np.any(pd.DataFrame({"A": [False], "B": [False]}))
A False
B False
dtype: bool
В pandas 0.23.2 это будет правильно возвращать False, как было в NumPy < 1.15.
In [3]: np.any(pd.DataFrame({"A": [False], "B": [False]}))
Out[3]: False
Исправленные регрессии#
Исправлена регрессия в
to_csv()при некорректной обработке файлоподобного объекта (GH 21471)Повторно разрешены повторяющиеся имена уровней
MultiIndex. Доступ к уровню с дублирующимся именем по имени всё ещё вызывает ошибку (GH 19029).Ошибка в обоих
DataFrame.first_valid_index()иSeries.first_valid_index()вызывается для строкового индекса с дублирующимися значениями (GH 21441)Исправлена печать DataFrame с иерархическими столбцами с длинными именами (GH 21180)
Исправлена регрессия в
reindex()иgroupby()с MultiIndex или несколькими ключами, содержащими категориальные значения даты-времени (GH 21390).Исправлена регрессия в унарных отрицательных операциях с типом данных object (GH 21380)
Ошибка в
Timestamp.ceil()иTimestamp.floor()когда метка времени кратна частоте округления (GH 21262)Исправлена регрессия в
to_clipboard()который по умолчанию копировал датафреймы с разделителем пробела вместо табуляции (GH 21104)
Изменения сборки#
Исходные и бинарные дистрибутивы больше не включают файлы тестовых данных, что приводит к меньшим размерам загрузки. Тесты, зависящие от этих файлов данных, будут пропущены при использовании
pandas.test(). (GH 19320)
Исправления ошибок#
Преобразование
Ошибка при построении
Indexс итератором или генератором (GH 21470)Ошибка в
Series.nlargest()для знаковых и беззнаковых целочисленных типов данных, когда присутствует минимальное значение (GH 21426)
Индексирование
Ошибка в
Index.get_indexer_non_unique()с категориальным ключом (GH 21448)Ошибка в операциях сравнения для
MultiIndexгде ошибка возникала при сравнении на равенство/неравенство с участием MultiIndex сnlevels == 1(GH 21149)Ошибка в
DataFrame.drop()поведение не является согласованным для уникальных и неуникальных индексов (GH 21494)Ошибка в
DataFrame.duplicated()с большим количеством столбцов, вызывающим 'превышена максимальная глубина рекурсии' (GH 21524).
I/O
Ошибка в
read_csv()который вызывал некорректное возникновение ошибки, когдаnrows=0,low_memory=True, иindex_colне былNone(GH 21141)Ошибка в
json_normalize()при форматированииrecord_prefixс целочисленными столбцами (GH 21536)
Категориальный
Часовые пояса
Ошибка в
TimestampиDatetimeIndexгде передачаTimestampлокализованный после перехода на летнее время возвращал бы дату и время до перехода (GH 20854)Ошибка при сравнении
DataFrameс учетом часового поясаDatetimeIndexстолбцы с переходом на летнее время, который вызывалKeyError(GH 19970)Ошибка в
DatetimeIndex.shift()гдеAssertionErrorвызывал бы при сдвиге через DST (GH 8616)Ошибка в
Timestampконструктор, где передача недопустимого обозначения смещения часового пояса (Z) не вызоветValueError(GH 8910)Ошибка в
Timestamp.replace()где замена на границе перехода на летнее время сохраняла некорректное смещение (GH 7825)Ошибка в
DatetimeIndex.reindex()при переиндексации tz-наивного и tz-осведомленногоDatetimeIndex(GH 8306)Ошибка в
DatetimeIndex.resample()при понижающей дискретизации через границу перехода на летнее время (GH 8531)
Timedelta
Участники#
Всего 17 человек внесли патчи в этот релиз. Люди со знаком "+" рядом с именами внесли патч впервые.
David Krych
Jacopo Rota +
Jeff Reback
Jeremy Schendel
Joris Van den Bossche
Kalyan Gokhale
Мэтью Рёшке
Michael Odintsov +
Ming Li
Пьетро Баттистон
Tom Augspurger
Uddeshya Singh
Vu Le +
alimcmaster1 +
david-liu-brattle-1 +
gfyoung
jbrockmendel