pandas.DataFrame.assign
-
DataFrame.assign(**kwargs)[source] -
Присваивание новых столбцов 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.19.2/generated/pandas.DataFrame.assign.html