首页 > 解决方案 > 给定一组索引,在数据框中的每个索引之间聚合

问题描述

给定一个索引数组,

array([0, 12, 42, 50, 64, 67, 85, 90, 100]

df有没有办法在不循环的情况下从数据帧中获取这些索引之间的值的总和df.iloc[i:i+1].sum()

标签: pythonpandas

解决方案


IIUC,您可以使用此方法:

df = pd.DataFrame(np.arange(0,100))
a = np.array([0, 12, 42, 50, 64, 67, 85, 90, 100])

df.groupby(pd.cut(df.index, a)).sum()

输出:

              0
(0, 12]      78
(12, 42]    825
(42, 50]    372
(50, 64]    805
(64, 67]    198
(67, 85]   1377
(85, 90]    440
(90, 100]   855

推荐阅读