Pandas:将不同的时间盘和积木组合起来

2024-04-27 04:32:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下DataFrame

from datetime import datetime
from pandas import DataFrame

df = DataFrame({
    'Buyer': ['Carl', 'Carl', 'Carl', 'Carl', 'Joe', 'Carl'],
    'Quantity': [18, 3, 5, 1, 9, 3],
    'Date': [
        datetime(2013, 9, 1, 13, 0),
        datetime(2013, 9, 1, 13, 5),
        datetime(2013, 10, 1, 20, 0),
        datetime(2013, 10, 3, 10, 0),
        datetime(2013, 12, 2, 12, 0),                                      
        datetime(2013, 9, 2, 14, 0),
    ]
})

首先:我希望在这个DataFrame中添加另一个专栏,总结每个买家过去5天的购买情况。具体来说,结果应该如下所示:

^{pr2}$

为此,我从以下几个方面着手:

df1 = (df.set_index(['Date', 'Buyer'])
         .unstack(level=[1])
         .resample('D', how='sum')
         .fillna(0))

但是,我不知道如何向这个DataFrame添加另一列,它可以为每一行添加前5行的条目。在

秒: 在这个DataFrame中添加另一列,它不仅像(1)中那样汇总最近5天的购买量,而且根据购买日期对这些购买量进行加权。例如:5天前的采购应计算为20%,4天前的采购应为40%,3天前的采购应为60%,2天前的采购应为80%,1天前和今天之后的采购应为100%


Tags: fromimportdataframepandasdfdatetimedate情况