Skip to main content
 首页 » 编程设计

python之如何对索引大于 X 的所有值求和

2025年05月04日28duanxz

假设我有这个系列:

>>> s = pd.Series({1:10,2:5,3:8,4:12,5:7,6:3}) 
>>> s 
1    10 
2     5 
3     8 
4    12 
5     7 
6     3 

我想对索引大于 X 的所有值求和。例如,如果X = 3,我想得到这个:

>>> X = 3 
>>> s.some_magic(X) 
1    10 
2     5 
3     8 
>3    22 

我设法以这种相当笨拙的方式做到了:

lt = s[s.index.values <= 3] 
gt = s[s.index.values > 3] 
gt_s = pd.Series({'>3':sum(gt)}) 
lt.append(gt_s) 

并得到了预期的结果,但我相信应该有一种更简单、更优雅的方法……或者有吗?

请您参考如下方法:

s.groupby(np.where(s.index > 3, '>3', s.index)).sum() 

或者,

s.groupby(s.index.to_series().mask(s.index > 3, '>3')).sum() 
Out:  
1     10 
2      5 
3      8 
>3    22 
dtype: int64