对无datetime索引的pandas Series按n个为一组重采样的实现方法
无 datetime 索引的 pandas Series 按固定数量分组聚合方案
你可以通过索引整数除法生成分组键,配合groupby实现需求,该方案是pandas原生向量化实现,性能优于手写循环,也能避免rolling方法滑动窗口非固定步长分组的问题。
最简实现代码
import pandas as pd s = pd.Series([1,2,3,4,11,22,33,44,444,555,666]) n = 4 # 自定义每组元素数量 result = s.groupby(s.index // n).max()
运行后得到的输出与预期一致:
0 4 1 44 2 666 dtype: int64
适配场景说明
- 若你的Series使用默认从零开始的连续整数索引,可直接使用上述代码,
s.index // n会自动将每n个连续索引划分为同一组:索引03除以4结果均为0,47除以4结果均为1,8~10除以4结果均为2,刚好匹配分组规则。 - 若你的Series使用非默认/非连续索引,可先重置为连续顺序索引再做分组:
# 非默认索引场景的兼容写法 s = s.reset_index(drop=True) result = s.groupby(s.index // n).max()
- 你可以将
max()替换为sum()、mean()等任意聚合函数,实现不同的分组统计需求。
内容的提问来源于stack exchange,提问作者QuantumPotatoe
相关产品推荐
相关产品推荐

