Хотя данные ответы являются правильными, они изменяют начальный фрейм данных, что не всегда желательно (и, учитывая, что OP запросил примеры «использования apply
», возможно, им нужна версия, которая возвращает новый фрейм данных, как это apply
происходит).
Это возможно с помощью assign
: он действителен для assign
существующих столбцов, как указано в документации (выделено мое):
Назначьте новые столбцы в DataFrame.
Возвращает новый объект со всеми исходными столбцами в дополнение к новым. Существующие столбцы, которые будут переназначены, будут перезаписаны .
Коротко:
In [1]: import pandas as pd
In [2]: df = pd.DataFrame([{'a': 15, 'b': 15, 'c': 5}, {'a': 20, 'b': 10, 'c': 7}, {'a': 25, 'b': 30, 'c': 9}])
In [3]: df.assign(a=lambda df: df.a / 2)
Out[3]:
a b c
0 7.5 15 5
1 10.0 10 7
2 12.5 30 9
In [4]: df
Out[4]:
a b c
0 15 15 5
1 20 10 7
2 25 30 9
Обратите внимание, что функции будет передан весь фрейм данных, а не только столбец, который вы хотите изменить, поэтому вам нужно будет убедиться, что вы выбрали правильный столбец в своей лямбде.