【问题标题】:time difference in long data format长数据格式的时差
【发布时间】:2020-10-13 18:38:48
【问题描述】:

我在 Python 中有以下问题。我得到了一些关于漏斗运动的长数据格式的日志数据。我有一个专栏说观察在什么时候变成了相应的漏斗。

示例数据:

idx name    changed_at  changer value
0   Comp A  25.05.2020  A   new
1   Comp B  25.05.2020  A   new
2   Comp C  25.05.2020  A   new
3   Comp A  28.05.2020  B   shortlist
4   Comp D  28.05.2020  B   new
5   Comp E  29.05.2020  B   new
6   Comp B  29.05.2020  B   long
7   Comp C  01.06.2020  A   shortlist
8   Comp A  03.06.2020  A   final 

我想添加另一列计算与下次再次提及该公司时的时差,以便添加的列如下所示:

idx name    changed_at  changer value   days_in_stage
0   Comp A  25.05.2020  A   new 3
1   Comp B  25.05.2020  A   new 4
2   Comp C  25.05.2020  A   new 7
3   Comp A  28.05.2020  B   shortlist   6
4   Comp D  28.05.2020  B   new na
5   Comp E  29.05.2020  B   new na
6   Comp B  29.05.2020  B   long    na
7   Comp C  01.06.2020  A   shortlist   na
8   Comp A  03.06.2020  A   final   na

例如,公司 A 在 idx 0、3 和 8 中被提及。但是,我在计算与 Python 中下一次观察的差异时遇到了问题,即在更大的 18k 观察范围内。

感谢您的帮助!

【问题讨论】:

  • 您需要添加代码才能获得完整的答案。假设您有一个从 csv 模块读取的表(列表列表),您可以使用 dict 来构建公司索引。键是公司名称,值是该公司的行列表。现在它只是处理所有这些值列表的问题......在每个列表上附加差异,因为它与原始表相同,所以你完成了。
  • 您也可以使用pandasgroupby 处理此问题。要想弄清楚这可能有点繁重。在处理 18k 数据时,pandas 可能会更快一些,但无论哪种方式,它对于现代计算机来说都是一个很小的数据集。

标签: python datetime time-series


【解决方案1】:

这是一个相当长的问题,必须分解成许多部分。但我可以向你解释粗略的 sudo 代码。那你自己想办法吧。

  1. 使用 pandas 并按名称对数据框进行分组
  2. 复制时间列并创建一个滑动窗口以获取下一次日期更改之间的差异
  3. 根据原idx排回dataframe

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-28
    • 1970-01-01
    • 1970-01-01
    • 2011-07-17
    • 1970-01-01
    • 2022-08-18
    • 1970-01-01
    • 2020-11-06
    相关资源
    最近更新 更多