python - 逆按揭2018 - 逆按揭居屋



如何按定義的時間間隔分組一個熊貓數據框? (1)

pd.Grouper base=30label='right'參數結合使用。

指定label='right'使時間段從6:30開始分組(高端),而不是5:30。 此外, 默認情況下 base設置為0,因此需要將這些抵消30以考慮日期的向前傳播。

假設,你想聚合每個子組的第一個元素,那麼:

df.groupby(pd.TimeGrouper(freq='60Min', base=30, label='right')).first()
# same thing using resample - df.resample('60Min', base=30, label='right').first()

收益率:

                           data
index                          
2017-02-14 06:30:00  11198648.0
2017-02-14 07:30:00  11198650.0
2017-02-14 08:30:00         NaN
2017-02-14 09:30:00         NaN
2017-02-14 10:30:00         NaN
2017-02-14 11:30:00         NaN
2017-02-14 12:30:00         NaN
2017-02-14 13:30:00         NaN
2017-02-14 14:30:00         NaN
2017-02-14 15:30:00         NaN
2017-02-14 16:30:00         NaN
2017-02-14 17:30:00         NaN
2017-02-14 18:30:00         NaN
2017-02-14 19:30:00         NaN
2017-02-14 20:30:00         NaN
2017-02-14 21:30:00         NaN
2017-02-14 22:30:00         NaN
2017-02-14 23:30:00  11207728.0

我有一個這樣的數據框,我想每60分鐘一組,並在06:30開始分組。

                           data
index
2017-02-14 06:29:57    11198648
2017-02-14 06:30:01    11198650
2017-02-14 06:37:22    11198706
2017-02-14 23:11:13    11207728
2017-02-14 23:21:43    11207774
2017-02-14 23:22:36    11207776

我在用:

df.groupby(pd.TimeGrouper(freq='60Min'))

我得到這個分組:

                      data
index       
2017-02-14 06:00:00     x1
2017-02-14 07:00:00     x2
2017-02-14 08:00:00     x3
2017-02-14 09:00:00     x4
2017-02-14 10:00:00     x5

但我正在尋找這個結果:

                      data
index       
2017-02-14 06:30:00     x1
2017-02-14 07:30:00     x2
2017-02-14 08:30:00     x3
2017-02-14 09:30:00     x4
2017-02-14 10:30:00     x5

我怎樣才能讓這個功能在6點半開始分組?

如果不能通過.groupby(pd.TimeGrouper(freq ='60Min'))完成 ,那麼最好的辦法是怎麼做?

敬禮和非常感謝





group-by