【发布时间】:2021-08-21 05:58:59
【问题描述】:
我目前有一个数据集,我试图根据一列对行进行分组,并对值为整数的列求和。
但是,问题是我想在总和达到某个阈值后创建一个新行
例如,在下面的数据框中,我试图根据公司名称对行进行分组并总结权重,但是,我不希望权重超过 100。
输入数据框:
| Company | Weight |
|---|---|
| a | 30 |
| b | 45 |
| a | 27 |
| a | 40 |
| b | 57 |
| a | 57 |
| b | 32 |
输出数据框:
| Company | Weight |
|---|---|
| a | 97 |
| a | 57 |
| b | 89 |
| b | 45 |
我尝试过使用 group by 和 sum,但是它无法检测我是否已达到最大数量。
有什么方法可以实现吗?
任何帮助将不胜感激!
【问题讨论】:
-
为什么
b的输出不是[45, 89]? -
对不起!这只是我的数学哈哈,已编辑!
-
我认为顺序或行也很重要。通过重新排序输入数据帧的行,您可以获得
b输出为[45, 89]或[77, 57]。如果行的顺序不重要,您可以有多种解决方案。 -
我认为理想情况下我希望每行尽可能接近 100,因此 45、89 是理想的!
-
a -> [99, 55], b -> [99, 35]是一个可接受的解决方案吗?这将更容易实现。
标签: python pandas pandas-groupby