Spec-Zone.ru › pandas 0.18

pandas.DataFrame.assign

DataFrame.assign(**kwargs)

Присваивает новые столбцы DataFrame, возвращая новый объект (копию) со всеми исходными столбцами плюс новые.

Новое в версии 0.16.0.

Параметры:

kwargs : пары ключ-значение

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

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

df : DataFrame

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

Примечания

Поскольку kwargs является словарем, порядок ваших аргументов может быть не сохранён. Для предсказуемости столбцы вставляются в алфавитном порядке в конец вашего DataFrame. Присвоение нескольких столбцов в рамках одного assign возможно, но вы не можете ссылаться на другие столбцы, созданные в рамках того же вызова assign.

Примеры

>>> df = DataFrame({'A': range(1, 11), 'B': np.random.randn(10)})

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

>>> df.assign(ln_A = lambda x: np.log(x.A))
    A         B      ln_A
0   1  0.426905  0.000000
1   2 -0.780949  0.693147
2   3 -0.418711  1.098612
3   4 -0.269708  1.386294
4   5 -0.274002  1.609438
5   6 -0.500792  1.791759
6   7  1.649697  1.945910
7   8 -1.495604  2.079442
8   9  0.549296  2.197225
9  10 -0.758542  2.302585

Когда значение уже существует и вставляется:

>>> newcol = np.log(df['A'])
>>> df.assign(ln_A=newcol)
    A         B      ln_A
0   1  0.426905  0.000000
1   2 -0.780949  0.693147
2   3 -0.418711  1.098612
3   4 -0.269708  1.386294
4   5 -0.274002  1.609438
5   6 -0.500792  1.791759
6   7  1.649697  1.945910
7   8 -1.495604  2.079442
8   9  0.549296  2.197225
9  10 -0.758542  2.302585

© 2008–2012, 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/0.18.1/generated/pandas.DataFrame.assign.html

Spec-Zone.ru

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