首页 > 解决方案 > pandas 窗口函数中是否有 FIRST_VALUE 的模拟?

问题描述

我正在尝试在大型 DataFrame(几 GB)上计算窗口函数。简化示例:

data_df.groupby('item_id').rolling(window='15min', on='time').agg({"item_count": 'first', "is_locked": "max"})

item_id - int64 time - datetime64 is_locked - boolean

我需要在列中获取窗口的第一个值, item_count但出现错误:

AttributeError: 'first' is not a valid function for 'RollingGroupby' object

但是对于group by这个功能是存在的。我知道我可以放一个 lambda,但由于它不是矢量化操作,性能非常低。有没有办法放置first函数RollingGroupby

标签: pythonpandas

解决方案


一种想法是使用自定义 lambda 函数:

{"item_count": lambda x: x.iat[0], "is_locked": "max"}

推荐阅读