You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Pandas Series按时间间隔分箱并选取指定区间的数据?

解决方法

要提取30分钟间隔分组后的第二个区间原始数据,有两种简单可行的方式:

方法一:利用Resampler的groups属性

resample返回的对象自带groups属性,它以字典形式存储每个分组的起始时间和对应索引列表,我们可以直接提取第二个分组的索引,再从原Series中获取对应数据:

import pandas as pd

data = pd.Series(data=[0,1,3,5], index=pd.to_timedelta([0, 15, 30, 45], unit='min'))

# 创建resample分组对象
resampler = data.resample('30min')
# 获取第二个分组的索引列表
target_indices = list(resampler.groups.values())[1]
# 提取对应数据
result = data.loc[target_indices]
print(result)

输出结果:

0 days 00:30:00    3
0 days 00:45:00    5
dtype: int64

方法二:用pd.cut划分区间后筛选

先手动生成30分钟间隔的时间区间,再给每个数据点标记所属区间,最后筛选目标区间的数据:

import pandas as pd

data = pd.Series(data=[0,1,3,5], index=pd.to_timedelta([0, 15, 30, 45], unit='min'))

# 生成30分钟间隔的区间边界
bins = pd.timedelta_range(start='0min', end='60min', freq='30min')
# 为每个数据点添加区间标签
data_with_interval = data.to_frame('value')
data_with_interval['interval'] = pd.cut(data_with_interval.index, bins=bins)
# 筛选第二个区间的数据
result = data_with_interval[data_with_interval['interval'] == bins[1]]['value']
print(result)

输出结果和方法一一致。


内容的提问来源于stack exchange,提问作者CurlyError

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 06:39:56