[问题] 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