[問題] resample是否可指定每日的期間

作者: jasonhsu14 (小健人)   2020-12-20 22:06:10
各位版友好,這邊有個問題想請教
start, end = '2000-10-01 9:30:00', '2000-10-20 15:30:00'
rng = pd.date_range(start, end, freq='10min')
ts=pd.DataFrame(data={'DT': rng, 'Value':np.arange(len(rng)) * 2})
ts.set_index('DT', inplace=True)
假設我有一個長得像上面ts的資料
這個資料期間 從10/1 9:30 開始每10分鐘就有資料,直到10/20的15:30
然後我只想取得每一天的10:00到13:00 期間,每50分鐘以內的資料總和
然後最後不滿50分鐘,則以到13:00期間的資料為主
我若想達成這樣,還麻煩版友指點小弟我該如何操作
我知道有resample可以用,可是google看來看去
resample似乎無法取出 每一天的10:00-13:00這段期間的每50分鐘為一組 的資料
因此還盼望版友們能指點,先謝謝了
也謝謝願意了解我問題的各位
作者: TitanEric (泰坦)   2020-12-21 08:01:00
先濾開始跟結束時間 再aggregate看看
作者: jiyu520 (不要鯽魚我)   2020-12-21 18:07:00
google pandas apply
作者: andy19960407 (258698)   2020-12-21 21:01:00
直覺會是新增一個欄位定義時間區段 然後groupby
作者: lycantrope (阿寬)   2020-12-22 11:00:00
不想新增欄位就用pd.cut
作者: jiyu520 (不要鯽魚我)   2020-12-22 12:48:00
對的 我知道你表達目的, 你可以將你要做的事項寫成func然後對資料表使用apply所以步驟我想像中或許可以是1. 對時間欄位進行判斷後新增"時間組別標籤欄位"2. groupby對某值欄位進行agg取出 max min first lastpandas欄位比值運算/query/apply 應該都可以做到1的步驟可能直接欄位比值就可以達到需求~
作者: aassdd926 (打東東)   2020-12-23 23:53:00
有個 between_time 的api 可以試試用這個過濾

Links booklink

Contact Us: admin [ a t ] ucptt.com