Pandas
June 11, 2023

Pandas dataframe. Применение метода apply (draft).

Это может пригодиться для создания нового столбца, который является функцией от других столбцов.

Например, портирую свой домашний учёт портфеля ценных бумаг с сиквела на pandas. И есть такая тривиальная логика на сиквеле в вычислении знака, с которым учитывается партия - для операции "Покупка" со знаком плюс, продажи - со знаком минус:

--в расчете остатка учитываем тип операции, покупка +, продажа минус
	, sum(case when oper = 'Покупка' then f.rest_qty else -f.rest_qty end) qty
	from [dbo].[quik_batch] f
	/* и всякое такое ... */

Для pandas dataframe я реализовал это так:

def qty_with_sign(qty_in, oper_in: str):
    return qty_in if oper_in == 'Покупка' else - qty_in
#новый столбец на основе значений столбцов rest_qty и oper
deal['qty_with_sign'] = deal.apply(lambda x: qty_with_sign(x['rest_qty'], x['oper']), axis =  1)