我有一只熊猫数据,包括一些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我想要的是在给定大小的value窗口中将计数相加。例如,对于一个window_size=10,我希望有:
value count
[0, 10) 600
[10, 20) 3600
[20, 30) 6600做这件事的最好方法是什么?
发布于 2020-09-26 15:58:27
可以使用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: int64https://stackoverflow.com/questions/64079625
复制相似问题