【发布时间】:2021-03-27 16:32:39
【问题描述】:
有没有办法使用 numpy 将一系列数字添加到阈值,然后重新启动计数器。目的是根据创建的类别形成 groupby。
amount price
0 27 22.372505
1 17 126.562276
2 33 101.061767
3 78 152.076373
4 15 103.482099
5 96 41.662766
6 108 98.460743
7 143 126.125865
8 82 87.749286
9 70 56.065133
我发现使用 .loc 进行迭代的唯一解决方案很慢。我尝试根据此答案构建解决方案https://stackoverflow.com/a/56904899:
sumvals = np.frompyfunc(lambda a,b: a+b if a <= 100 else b,2,1)
df['cumvals'] = sumvals.accumulate(df['amount'], dtype=np.object)
用例是找出每 75 个售出数量的东西的平均价格。
【问题讨论】:
-
你能显示预期的输出吗,从你的问题看不太清楚
-
你是对的 - 有 2 个不同的问题。我想平均每 75 个销售量的价格,但后来我意识到这可能涉及将阈值行分成两行,并决定通过在金额超过 75 时创建一个组来简化它。感谢您的周到!
标签: pandas