Что нового в версии 1.0.2 (12 марта 2020)#

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

Исправленные регрессии#

Группировка

  • Исправлена регрессия в DataFrameGroupBy.agg() и SeriesGroupBy.agg() которые не работали на фреймах с MultiIndex столбцы и пользовательская функция (GH 31777)

  • Исправлена регрессия в groupby(..).rolling(..).apply() (RollingGroupby), где raw параметр игнорировался (GH 31754)

  • Исправлена регрессия в rolling(..).corr() при использовании временного смещения (GH 31789)

  • Исправлена регрессия в groupby(..).nunique() который изменял исходные значения, если NaN значения присутствовали (GH 31950)

  • Исправлена регрессия в DataFrame.groupby вызов ValueError из внутренней операции (GH 31802)

  • Исправлена регрессия в DataFrameGroupBy.agg() и SeriesGroupBy.agg() вызов пользовательской функции лишний раз на пустом входе (GH 31760)

I/O

  • Исправлена регрессия в read_csv() в котором encoding опция не распознавалась с некоторыми файлоподобными объектами (GH 31819)

  • Исправлена регрессия в DataFrame.to_excel() когда columns передается аргумент ключевого слова (GH 31677)

  • Исправлена регрессия в ExcelFile где поток, переданный в функцию, был закрыт деструктором. (GH 31467)

  • Исправлена регрессия, где read_pickle() вызывал UnicodeDecodeError при чтении pickle-файла py27 с MultiIndex столбец (GH 31988).

Переиндексация/выравнивание

Другие

  • Исправлен регресс при соединении по DatetimeIndex или TimedeltaIndex для сохранения freq в простых случаях (GH 32166)

  • Исправлена регрессия в Series.shift() с datetime64 тип данных при передаче целого числа fill_value (GH 32591)

  • Исправлена регрессия в repr для object-dtype Index с булевыми значениями и пропущенными значениями (GH 32146)

Индексирование с массивами логических значений, допускающими null#

Ранее индексирование с нулевым логическим массивом, содержащим NA вызовет ValueError, однако теперь это разрешено с NA рассматривается как False. (GH 31503)

In [1]: s = pd.Series([1, 2, 3, 4])

In [2]: mask = pd.array([True, True, False, None], dtype="boolean")

In [3]: s
Out[3]: 
0    1
1    2
2    3
3    4
Length: 4, dtype: int64

In [4]: mask
Out[4]: 

[True, True, False, ]
Length: 4, dtype: boolean

pandas 1.0.0-1.0.1

>>> s[mask]
Traceback (most recent call last):
...
ValueError: cannot mask with array containing NA / NaN values

pandas 1.0.2

In [5]: s[mask]
Out[5]: 
0    1
1    2
Length: 2, dtype: int64

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

Datetimelike

  • Ошибка в Series.astype() не копировать для tz-naive и tz-aware datetime64 тип данных (GH 32490)

  • Ошибка, где to_datetime() вызывал бы ошибку при передаче pd.NA (GH 32213)

  • Улучшено сообщение об ошибке при вычитании двух Timestamp которые приводят к выходу за пределы Timedelta (GH 31774)

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

  • Исправлена ошибка, где Categorical.from_codes() неправильно вызывал ValueError при передаче обнуляемых целочисленных кодов. (GH 31779)

  • Исправлена ошибка, где Categorical() конструктор вызовет TypeError при передаче массива numpy, содержащего pd.NA. (GH 31927)

  • Ошибка в Categorical который игнорировал или вызывал сбой при вызове Series.replace() со спискообразным to_replace (GH 31720)

I/O

  • Используя pd.NA с DataFrame.to_json() теперь корректно выводит null-значение вместо пустого объекта (GH 31615)

  • Ошибка в pandas.json_normalize() когда значение в мета-пути не является итерируемым (GH 31507)

  • Исправлена сериализация pandas.NA. Ранее возвращался новый объект, что нарушало вычисления, основанные на NA являясь одиночным (GH 31847)

  • Исправлена ошибка при круговом преобразовании в parquet с обнуляемыми целочисленными типами без знака (GH 31896).

Экспериментальные типы данных

  • Исправлена ошибка в DataFrame.convert_dtypes() для столбцов, которые уже использовали "string" тип данных (GH 31731).

  • Исправлена ошибка в DataFrame.convert_dtypes() для series со смесью целых чисел и строк (GH 32117)

  • Исправлена ошибка в DataFrame.convert_dtypes() где BooleanDtype столбцы были преобразованы в Int64 (GH 32287)

  • Исправлена ошибка при установке значений с использованием индексатора среза со строковым типом данных (GH 31772)

  • Исправлена ошибка, где DataFrameGroupBy.first(), SeriesGroupBy.first(), DataFrameGroupBy.last(), и SeriesGroupBy.last() вызовет TypeError когда группы содержали pd.NA в столбце типа object (GH 32123)

  • Исправлена ошибка, где DataFrameGroupBy.mean(), DataFrameGroupBy.median(), DataFrameGroupBy.var(), и DataFrameGroupBy.std() вызовет TypeError на Int64 столбцы типа dtype (GH 32219)

Строки

  • Используя pd.NA с Series.str.repeat() теперь корректно выводит нулевое значение вместо ошибки для векторных входных данных (GH 31632)

Скользящее

  • Исправлены операции скользящего окна с переменным окном (определяемым по времени) на убывающем временном индексе (GH 32385).

Участники#

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

  • Anna Daglis +

  • Daniel Saxton

  • Ирв Ластиг

  • Jan Škoda

  • Joris Van den Bossche

  • Джастин Чжэн

  • Kaiqi Dong

  • Kendall Masse

  • Марко Горелли

  • Мэтью Рёшке

  • MeeseeksMachine

  • MomIsBestFriend

  • Команда разработчиков Pandas

  • Pedro Reys +

  • Prakhar Pandey

  • Robert de Vries +

  • Rushabh Vasani

  • Simon Hawkins

  • Stijn Van Hoey

  • Терджи Петерсен

  • Tom Augspurger

  • William Ayd

  • alimcmaster1

  • gfyoung

  • jbrockmendel