【问题标题】:Beyond value_counts() [closed]超越 value_counts() [关闭]
【发布时间】:2021-01-12 16:54:55
【问题描述】:

我有一个 pandas 数据框,每个数据框包括一些 values 和 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

最好的方法是什么?

【问题讨论】:

标签: python pandas dataframe


【解决方案1】:

您可以使用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

【讨论】:

  • 我也在考虑使用 pd.cut 来获得分类,以便我们可以对其进行分组。非常简洁
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-03
  • 2019-07-16
  • 2014-12-12
  • 2022-12-05
  • 1970-01-01
相关资源
最近更新 更多