Python Pandas groupby在不是索引的列上运行15分钟

2024-10-01 09:18:22 发布

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

我有一个交易的数据框,它有交易日期,交货日期和交易量。交易日期为指数。在

    Trading_Date    Delivery_Date   Volume
01.01.2015 22:15    01.01.2015 23:00    15
01.01.2015 22:18    01.01.2015 23:00    10
01.01.2015 22:25    02.01.2015 00:30    5
01.01.2015 22:27    02.01.2015 00:30    20
05.01.2015 02:15    05.01.2015 04:45    13
...

我想在交货日期前15分钟把货量加起来。在

因此,我创建了另一个列,其中包含从交易日期到交货日期的时间差。在

^{pr2}$

我怎么能得到15分钟,30分钟,45分钟的“音量”的总和。。。在交货日期之前?在

我曾尝试过重采样和groupby,但这些似乎只是与索引一起工作。在


Tags: 数据date交易指数交货音量groupbydelivery
1条回答
网友
1楼 · 发布于 2024-10-01 09:18:22

我已经解决了这个问题:

    dfA['help'] = dfA.index
    dfA['Timediff'] =  dfA['help']- dfA['Delivery_Date']

    dfA['Timediff2'] = dfA['Timediff'].apply(lambda x: x / np.timedelta64(1,'m'))  # converts Timediff in minutely value


    dfA['Time15M'] = dfA['Timediff2']/15
    dfA['Time15M'] = dfA['Time15M'].apply(np.floor)  # round


    dfA = dfA.sort('Time15M')                  ## Sort Data by the new Date and hour column
    dfB = dfA.groupby(['Time15M']) ['Volume'].sum()

    print dfA.head()

结果如下:

^{pr2}$

不幸的是不是在一个适当的时间戳上,但足够好做分析。在

相关问题 更多 >