- 此问题在此处已有答案**:
Taking first and last value in a rolling window(2个答案)
5天前关闭。
我有下面的数据结构:
我想做的是,对于每个地点,日期,确定n天前的确切花费。
我在这里尝试使用滚动窗口,但由于某些原因,当我创建窗口时,我不知道如何获取其中的第一个元素:
dummy_data["spending_3_days_ago"] = (
dummy_data.sort_values("date")
.groupby("location")["spendings"]
.transform(lambda x: x.rolling(3, min_periods=1).??first??())
)
我可以调用窗口中所有类型的聚合函数,例如:总数,平均数等,但我不能得到第一个。
1条答案
按热度按时间m2xkgtsf1#
不要使用
rolling
,而应使用groupby.shift
:输出:
或者,如果要模拟
min_periods=1
,请反向传播这些值:输出: