我有一个panda数据帧,每个数据帧包括一些value
和count
:
df = pd.DataFrame({'value':[1,2,3,11,12,13,21,22,23], 'count':[100,200,300, 1100,1200,1300, 2100,2200,2300]})
value count
1 100
2 200
3 300
11 1100
12 1200
13 1300
21 2100
22 2200
23 2300
我想要的是在给定的相等大小的CCD_ 3窗口内将计数相加。例如,对于window_size=10,我想要:
value count
[0, 10) 600
[10, 20) 3600
[20, 30) 6600
最好的方法是什么?
您可以使用pd.cut
根据窗口大小将列value
分类为离散的间隔,然后使用此装箱列按列count
分组,并使用sum
:聚合
w = 10
g = pd.cut(df['value'], np.r_[0:df['value'].max() + w : w], right=False)
s = df['count'].groupby(g).sum()
value
[0, 10) 600
[10, 20) 3600
[20, 30) 6600
Name: count, dtype: int64