我有一个pandas数据框,它有一个惟一的ID、一个stage和一个与该stage相关联的日期。我想创建一个新的专栏,展示在那个特定阶段所花的时间。这意味着减去该唯一ID的日期减去与该相同ID关联的下一阶段的日期。由于数据按ID和阶段排序,该ID记录的最后阶段应出错并读取“当前”或n/a。下面的数据很有帮助。我在想有一种方法可以实现多个for循环,但我不确定如何做到这一点
我曾尝试在熔化数据帧之前创建新列,但在许多情况下,下一阶段是不适用的。并非总是第一阶段=>;2=大于;3等,它可以直接从第一阶段跳到第三阶段
example.describe
Opportunity_ID stage value
0061R00000l43xP 1.0 2018-11-07
0061R00000lUT5r 1.0 2019-05-02
0061R00000lUT5r 2.0 2019-05-22
0061R00000lUT5r 3.0 2019-06-03
80061R0000lUT5r 5.0 2019-06-20
0061R00000lUT5r 5.5 2019-09-10
0061R00000lXwZL 1.0 2018-12-05
0061R00000lXwZL 4.0 2019-04-09
0061R00000lXwZL 5.0 2019-04-19
0061R00000lXwZL 5.5 2019-04-19
0061R00000lXwZL 8.0 2019-05-03
0061R00000lXwZL 9.0 2019-07-09
0061R00000lXwZL 11.0 2019-08-02
0061R00000lY4Vm 1.0 2018-12-06
0061R00000lY4Vm 2.0 2019-09-26
0061R00000lrOGm 3.0 2019-02-15
0061R00000lrOGm 4.0 2019-09-18
[793 rows x 3 columns]>
example.dtypes
Opportunity_ID object
stage float64
value datetime64[ns]
dtype: object
您可以使用^{} +^{}
根据ID按组计算差异。
为了计算差异,使用^{} 将日期转换为日期时间:
您可能不方便订购。 你可以计算它而不需要对值排序以前。这将是您的示例的结果:
相关问题 更多 >
编程相关推荐