【发布时间】:2019-12-11 14:52:27
【问题描述】:
我只是想进一步了解grouper。我知道调用frequency 会使某些功能无效。但我想知道在使用grouper 时是否可以计算最后一段。例如,我希望 max 计数包含 13:30:00 and 13:45:00 之间的 15 分钟段,用于下面的 df。
df = pd.DataFrame({
'Time' : ['1904-01-01 13:00:00','1904-01-01 13:10:00','1904-01-01 13:15:00','1904-01-01 13:25:00','1904-01-01 13:35:00'],
'Number' : [2,2,1,1,1],
})
df['Time'] = pd.to_datetime(df['Time'])
df = df.groupby(pd.Grouper(freq='15T', key='Time', closed = 'left'))['Number'].max().ffill()
df = df.reset_index(level=['Time'])
输出:
Time Number
0 1904-01-01 13:00:00 2
1 1904-01-01 13:15:00 1
2 1904-01-01 13:30:00 1
这可以通过使用label = 'right' 来实现。但输出是:
Time Number
0 1904-01-01 13:15:00 2
1 1904-01-01 13:30:00 1
2 1904-01-01 13:45:00 1
我希望返回df:
Time Number
0 1904-01-01 13:00:00 2
1 1904-01-01 13:15:00 1
2 1904-01-01 13:30:00 1
3 1904-01-01 13:45:00 1
【问题讨论】: