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.20.3/generated/pandas.DataFrame.assign.html