Python Pandas 在不是索引的列上按 15 分钟分组

Python Pandas groupby 15Minutes on a column that is not the index

我有一个包含事务的数据框,其中有一个 trading_date、一个 delivery_date 和一个卷。 Trading_Date 是索引。

    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
...

我想在 Delivery_Date 之前以 15 分钟的时间块对音量求和。

因此我创建了另一列,时差从 Trading_Date 到 Delivery_Date。

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

如何获得交货日期前 15 分钟、30 分钟、45 分钟...的 'Volume' 总和?

我尝试过使用 resample 和 groupby,但这些似乎只适用于索引。

我是这样解决的:

    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()

结果如下:

Timediff Volume
-15      522.9
-14      978.0
-13      621.1
-12      737.6
-11      767.9
-10      611.1
-9      1564.4
-8      1230.5
-7      1800.3
-6      9250.0

不幸的是,时间戳不正确,但足以进行分析。