pandas.DataFrame.assign
-
DataFrame.assign(**kwargs)[source] -
Присваивает новые столбцы DataFrame, возвращая новый объект (копию) со всеми исходными столбцами, а также новыми.
Параметры: kwargs : пары «ключ-значение»
ключами являются имена столбцов. Если значения являются вызываемыми объектами, они вычисляются для DataFrame и присваиваются новым столбцам. Вызываемый объект не должен изменять входной DataFrame (хотя pandas этого не проверяет). Если значения не вызываемые (например, Series, скалярное значение или массив), они просто присваиваются.
Возвращает: df : DataFrame
Новый DataFrame со всеми существующими столбцами и новыми столбцами.
Примечания
Для Python 3.6 и выше столбцы вставляются в порядке **kwargs. Для Python 3.5 и более ранних версий, поскольку **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.21.1/generated/pandas.DataFrame.assign.html