Мой фрейм данных Polars для финансовых транзакций имеет следующую схему:

Для каждой транзакции и продолжительности d я хочу:
- захватить source_acct и его временная метка
- просмотрите временную метку - d часов и получите только те строки, у которых source_acct или dest_acct соответствует текущий source_acct
- суммировать все txn как sum_in, когда текущий source_acct равен dest_acct строки
- сделайте то же самое для sum_out, но где текущий исходный аккаунт — это source_account строки, включая его самого.
def windowing(df: pl.DataFrame, window_in_hours: int):
d = timedelta(hours=window_in_hours)
def calculate_amt(row):
acc_no, window_end = row[0], row[1]
window_start = window_end - d
acct_window_mask = (
(pl.col('timestamp') >= window_start) &
(pl.col('timestamp')
Подробнее здесь: https://stackoverflow.com/questions/791 ... urrent-row