- 編輯我注意到我輸入的時間不是我的意圖。我將12點後的時間轉換爲24小時制。但是,unutbu的答案應該很清楚。熊貓組按時間與指定的開始時間
- 2nd Edit。我改變了數據以作出更好的例子。
以下是按日期索引的時間序列。我想從start_datetime開始聚合,並根據下面的timedelta(9.5小時= 34200秒)繼續聚合。
def main():
# start_datetime = datetime.datetime(2013, 1, 1, 8)
# end_datetime = datetime.datetime(2013, 1, 1, 5, 30)
s = pd.Series(
np.arange(2, 10),
pd.to_datetime([
'20130101 7:34:04', '20130101 8:34:08', '20130101 10:34:08',
'20130101 12:34:15', '20130101 13:34:28', '20130101 12:34:54',
'20130101 14:34:55', '20130101 17:29:12']))
print(s)
bar_size = datetime.timedelta(seconds=60*60*9.5)
time_group = pd.Grouper(
freq=pd.Timedelta(bar_size), closed='left', label='right')
foobar = s.groupby(time_group).agg(np.sum)
print(foobar)
if __name__ == "__main__":
main()
運行上面的代碼將輸出以下內容:
2013-01-01 09:30:00 5
2013-01-01 19:00:00 39
Freq: 570T, dtype: int64
大熊貓內部決定開始從午夜分組上午8:00代替。我無法找到強制數據框在上午8:00開始分組的方式。有沒有人有使用熊貓功能的解決方案?
偉大的答案!謝謝! – itzjustricky