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