Spec-Zone.ru › pandas 2

pandas.DataFrame.assign

DataFrame.assign(**kwargs)[source]

Назначение новых столбцов в DataFrame.

Возвращает новый объект со всеми исходными столбцами в дополнение к новым. Существующие столбцы, которые переназначаются, будут перезаписаны.

Параметры:
**kwargs:словарь {str: вызываемый объект или Series}

Имена столбцов являются ключевыми словами. Если значения являются вызываемыми объектами, они вычисляются для DataFrame и назначаются новым столбцам. Вызываемый объект не должен изменять входной DataFrame (хотя pandas этого не проверяет). Если значения не являются вызываемыми объектами (например, Series, скалярное значение или массив), они просто назначаются.

Возвращаемое значение:
DataFrame

Новый DataFrame со вновь добавленными столбцами в дополнение ко всем существующим.

Примечания

Присвоение нескольких столбцов в рамках одного assign возможно. Более поздние элементы в ‘**kwargs’ могут ссылаться на вновь созданные или изменённые столбцы в ‘df’; элементы вычисляются и назначаются в ‘df’ в порядке их следования.

Примеры

>>> df = pd.DataFrame({'temp_c': [17.0, 25.0]},
...                   index=['Portland', 'Berkeley'])
>>> df
          temp_c
Portland    17.0
Berkeley    25.0

Где значение является вызываемым объектом, оцениваемым на df:

>>> df.assign(temp_f=lambda x: x.temp_c * 9 / 5 + 32)
          temp_c  temp_f
Portland    17.0    62.6
Berkeley    25.0    77.0

Альтернативно, тот же результат можно получить, напрямую ссылаясь на существующую Series или последовательность:

>>> df.assign(temp_f=df['temp_c'] * 9 / 5 + 32)
          temp_c  temp_f
Portland    17.0    62.6
Berkeley    25.0    77.0

Можно создать несколько столбцов с помощью assign, где один из столбцов зависит от другого столбца, определённого в том же assign:

>>> df.assign(temp_f=lambda x: x['temp_c'] * 9 / 5 + 32,
...           temp_k=lambda x: (x['temp_f'] + 459.67) * 5 / 9)
          temp_c  temp_f  temp_k
Portland    17.0    62.6  290.15
Berkeley    25.0    77.0  298.15

© 2008–2022, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team
Licensed under the 3-clause BSD License.
https://pandas.pydata.org/pandas-docs/version/2.2.2/reference/api/pandas.DataFrame.assign.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API