【问题标题】:How to create a counter with a for loop?如何使用 for 循环创建计数器?
【发布时间】:2018-05-01 17:09:00
【问题描述】:

我正在尝试编写一个 for 循环,该循环将遍历每个唯一 ID,将计算每个 SubmissionStatus 所花费的时间(例如待处理的 OSPA、待处理的部门)并将结果存储在每个字典对应的字典列表中每个唯一的 ID。花费的时间是通过在状态处于特定阶段时获取最早的 LastModified 值并在状态更改到下一阶段时从 LastModified 值中减去该值来计算的(当 SubmissionStatus 从 Pending OSPA 变为 Pending Department 时,我会采用当 SubmissionStatus 为 Pending OSPA 时,从行中减去 LastModified 时间戳并减去最低的 Last Modified 时间戳,例如 04/05/2018-04/01/2018=4 天 + 04/06/2018-04/05/2018=1 天,因此总计 = 5天)

输入是一个熊猫数据框:

    ID  LastModified    SubmissionStatus
0   1   04/01/2018      Pending OSPA
1   1   04/03/2018      Pending OSPA
2   1   04/05/2018      Pending Department
3   1   04/06/2018      Pending OSPA
4   2   04/02/2018      Pending OSPA
5   2   04/03/2018      Pending Department
6   2   04/05/2018      Complete

输出是字典列表:

[
 { ID : 1,
   DaysWithOSPA: 5,
   DaysWithDepartment: 1},
 { ID : 2,
   DaysWithOSPA:1
   DaysWithDepartment:2}]

【问题讨论】:

  • 请显示您想要获得的确切输出。您在此处发布的输出非常具有象征意义。也不清楚您的输入是什么。它是熊猫数据框吗?
  • 感谢@Aran-Fey 的反馈!我更新了输出。它是一个字典列表,每个唯一 ID 号都有一个字典。输入是一个熊猫数据框。

标签: python pandas


【解决方案1】:
df.groupby(['ID', 'SubmissionStatus']).sum()

【讨论】:

  • 我需要每个提交状态所花费的总时间,而不是 id 处于该状态的时间总和。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-17
  • 1970-01-01
  • 1970-01-01
  • 2017-04-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多