【发布时间】:2021-12-29 16:33:36
【问题描述】:
我有一个包含一些销售机会的大型 DF。此 opps 在其生命周期中多次更改阶段,我们可以看到这些更改是什么以及它们是何时进行的。 可能的阶段是:
Closed Won
Closed No Deal
Propose
Negotiate
Qualify
Closed Lost
Invalid
Identify
Implemented
Close Lost
Close Won
Close No Deal
我也知道 opp 更改之前的 OldValue。我需要做的是有一个单独的 DF,我可以在其中获得机会在每个阶段停留多长时间的中值。 我研究了网络和 SO,但找不到符合我标准的解决方案。
这是一些示例数据:
reatedDate OpportunityId OldValue NewValue
2020-05-05T12:04:32.000Z 0060N00000TbLneQAF Propose Qualify
2020-07-06T08:44:08.000Z 0060N00000TbLneQAF Qualify Identify
2020-08-05T08:59:45.000Z 0060N00000TbLneQAF Identify Qualify
2020-08-05T12:02:59.000Z 0060N00000TbLneQAF Qualify Propose
2020-09-22T06:47:16.000Z 0060N00000TbLneQAF Propose Qualify
2020-10-08T15:33:29.000Z 0060N00000TbLneQAF Qualify Identify
2020-10-08T15:40:21.000Z 0060N00000TbLneQAF Identify Closed No Deal
2021-07-29T07:57:28.000Z 0060N00000TbLohQAF Identify Closed No Deal
2021-10-17T03:07:24.000Z 0060N00000TbLtwQAF Qualify Closed No Deal
2021-07-27T13:57:34.000Z 0060N00000TbMhkQAF Identify Closed No Deal
2020-04-22T13:35:30.000Z 0060N00000TbMkjQAF Negotiate Closed Lost
2020-09-25T09:37:32.000Z 0060N00000TbN8qQAF Qualify Propose
2020-09-25T09:37:41.000Z 0060N00000TbN8qQAF Propose Negotiate
2021-09-06T14:31:05.000Z 0060N00000TbN8qQAF Negotiate Propose
2021-11-03T11:09:56.000Z 0060N00000TbNF8QAN Identify Qualify
2020-04-29T15:43:58.000Z 0060N00000TbNFSQA3 Identify Invalid
2021-01-07T09:35:56.000Z 0060N00000TbNUDQA3 Identify Closed No Deal
2020-12-03T08:53:12.000Z 0060N00000TbNUSQA3 Qualify Identify
2021-09-08T09:41:54.000Z 0060N00000TbNUSQA3 Identify Closed Lost
2021-04-14T07:31:49.000Z 0060N00000TbNg4QAF Identify Closed No Deal
2020-04-27T12:19:51.000Z 0060N00000TbNwCQAV Qualify Identify
2020-05-04T11:15:00.000Z 0060N00000TbNxPQAV Identify Closed No Deal
2021-05-24T03:13:10.000Z 0060N00000TbNywQAF Qualify Closed No Deal
2021-05-28T14:51:32.000Z 0060N00000TbO3SQAV Identify Invalid
2021-07-27T13:25:50.000Z 0060N00000TbOBlQAN Identify Closed No Deal
2021-07-27T13:25:50.000Z 0060N00000TbOCeQAN Identify Closed No Deal
2021-07-27T13:25:50.000Z 0060N00000TbOELQA3 Identify Closed No Deal
2020-04-28T15:12:53.000Z 0060N00000TbOIrQAN Qualify Negotiate
2020-05-18T14:11:18.000Z 0060N00000TbOIrQAN Negotiate Closed Won
2021-07-27T13:22:09.000Z 0060N00000TbOJzQAN Identify Closed No Deal
2021-07-27T13:22:09.000Z 0060N00000TbOLbQAN Identify Closed No Deal
2020-08-13T05:04:36.000Z 0060N00000TbOOzQAN Propose Identify
2020-09-06T15:36:36.000Z 0060N00000TbOOzQAN Identify Invalid
2021-05-27T14:22:10.000Z 0060N00000TbOWKQA3 Qualify Identify
2021-05-27T14:22:27.000Z 0060N00000TbOWKQA3 Identify Closed Lost
2020-04-27T12:25:52.000Z 0060N00000TbOX3QAN Qualify Identify
2021-01-08T15:27:33.000Z 0060N00000TbOX3QAN Identify Qualify
2020-04-13T10:53:57.000Z 0060N00000TbOY6QAN Qualify Identify
2020-12-03T10:38:35.000Z 0060N00000TbOY6QAN Identify Closed Lost
2020-04-13T10:54:57.000Z 0060N00000TbOYaQAN Qualify Identify
2020-12-01T10:50:41.000Z 0060N00000TbOYaQAN Identify Closed No Deal
2021-07-27T13:57:34.000Z 0060N00000TbOb5QAF Identify Closed No Deal
2021-07-27T13:57:34.000Z 0060N00000TbOeYQAV Identify Closed No Deal
2020-05-29T12:28:44.000Z 0060N00000TbOgyQAF Identify Qualify
2020-12-18T07:34:18.000Z 0060N00000TbOgyQAF Qualify Identify
2020-12-18T07:34:43.000Z 0060N00000TbOgyQAF Identify Invalid
2021-07-27T13:22:09.000Z 0060N00000TbOhSQAV Identify Closed No Deal
2020-04-15T11:30:09.000Z 0060N00000TbOk7QAF Identify Invalid
2020-08-26T03:16:46.000Z 0060N00000TbOnVQAV Qualify Closed No Deal
2020-04-03T13:08:23.000Z 0060N00000TbOy4QAF Identify Closed Lost
到目前为止,我所做的是尝试使用 group_by 函数,然后尝试获取中位数,但我被卡住了,因为我需要查看 opp 更改的日期并将其与所花费的时间进行比较获得新的价值。 我将查看以下结果:
Stage Average Time
Closed Won x days
Closed No Deal x days
Propose x days
Negotiate x days
Qualify x days
Closed Lost x days
Invalid x days
Identify x days
Implemented x days
Close Lost x days
Close Won x days
Close No Deal x days
希望这是有道理的。顺便说一句,我是个菜鸟,所以谢谢你的帮助!
【问题讨论】:
-
在您的数据框中,您只能对以下状态有答案:“提议”、“资格”、“识别”和“协商”,因为从这个状态到另一个状态的转换(新值)。例如,为“Closed Lost”设置一个值是否有意义?
-
嗨@Corralien,是的,这是有道理的,因为 opp 可以从一个状态转到另一个状态,然后返回原始状态,然后转换到另一个状态。欢迎来到销售数据!......是精神! :)
-
好的。我明白 :) 你可以手动计算 OppId '0060N00000TbLneQAF' 的输出(前 7 行)。这里只有 3 个状态:“Propose”、“Qualify”和“Identify”。我是对的?
标签: python python-3.x pandas dataframe