Skip to main content
 首页 » 编程设计

python之Groupby 当给定每个组的起始位置索引时

2025年05月04日16langtianya

我有一个我想分组的值系列,另一个系列包含每个组在第一组之后的起始位置索引(第一组被理解为从位置索引 0 开始)。一系列值可以有任意索引。有没有办法使用它来生成 groupby-aggregate?理想情况下,将保留空组。示例:

values = pd.Series(np.arange(10, 20), index=np.arange(110, 120)) 
group_indices = pd.Series([3, 3, 8]) 

现在,values.groupby(group_indices) 应该分组,第一组是 values.iloc[:3],第二组是 values。 iloc[3:3](一个空组),第三个是values.iloc[3:8],第四个是values.iloc[8:],而 values.groupby(group_indices).mean() 将是 pd.Series([11.0, NaN, 15.0, 18.5])。

请您参考如下方法:

这里有一个简单的方法

values.groupby(values.index.isin(group_indices).cumsum()).mean() 
Out[454]:  
1    11.0 
2    15.0 
3    18.5 
dtype: float64