Spec-Zone.ru › pandas 1

pandas.DataFrame.assign

DataFrame.assign(**kwargs)[source]

Присваивание новых столбцов DataFrame.

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

Параметры
**kwargs:dict of {str: callable or 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/1.5.0/reference/api/pandas.DataFrame.assign.html

Spec-Zone.ru

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