Beyond value_counts()



我有一个panda数据帧,每个数据帧包括一些valuecount

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

最新更新