首页 > 解决方案 > GroupBy 和根据 1970 年之前的日期范围转换值

问题描述

我尝试了一些不同的东西,但我一定错过了一些东西。

我有一个看起来像这样的数据框:

|   | start | end  | metric | count |
|---|-------|------|--------|-------|
| 1 | 1250  | 1399 | line   | 100   |
| 2 | 1250  | 1399 | chars  | 1200  |
| 3 | 1900  | 1990 | line   | 100   |
| 4 | 1350  | 1475 | line   | 200   |

我的目标是按指标对计数进行分组,将它们相加,跨箱(使用这个术语,如 pd.cut 所说的那样)大约几年,这样最后,如果我有 50 个从 1250 到 2000 的箱,我会

(1250,1300] -> 100 lines
(1250,1300] -> 1200 chars
(1300,1350] -> 100 lines
(1350,1400] -> 300 lines as two rows 
(1400,1450] -> 200 lines as only one remains in this range
... etc.

我尝试过使用时间戳,但我所拥有的岁月无处不在,从古代历史到现在。通常,我以非熊猫的方式处理它(迭代字典并通过条件生成一些总和,将结果分配给列表中的字典,然后我将其转换回熊猫)但我对此感到厌倦并想知道是否有一种熊猫方法可以解决这个问题。

额外的问题:有没有办法指定一个 0 值,其中找不到特定度量值的时间范围;)将使绘图更容易:)

如果答案已经在其他地方,请原谅,语言障碍可能导致找不到正确的方法来搜索问题。

标签: pythonpandasdataframedate

解决方案


推荐阅读