我正在寻找Groupby+Transform的帮助。我意识到它们的结合是一个非常强大的工具,但是我很难找到我想要完成的文档/具体情况。我想根据多个参数定义的组来计算时间增量。具体来说,我想一个列,显示分配给批准的时间差按案件编号和地点,只有当既有分配和批准存在。请看下面我的数据集和代码到目前为止:
数据集(开始)
Casenumber Site CreatedDate NewValue
1 A 2018-03-30 16:47:03 Approved
2 A 2018-04-02 19:24:43 Assigned
2 A 2018-04-02 25:24:43 Delayed
2 A 2018-04-02 20:49:45 Approved
2 B 2018-04-02 19:24:43 Assigned
2 B 2018-04-02 22:49:45 Approved
2 B 2018-04-02 25:24:43 Delayed
数据集(完成)
Casenumber Site CreatedDate NewValue Diff
1 A 2018-03-30 16:47:03 Approved N/A
2 A 2018-04-02 19:24:43 Assigned 0 days 0 hours
2 A 2018-04-02 20:49:45 Approved 0 days 1:25:02
2 A 2018-04-02 25:24:43 Delayed N/A
2 B 2018-04-02 19:24:43 Assigned 0 days 0 hours
2 B 2018-04-02 22:49:45 Approved 0 days 3:25:02
2 B 2018-04-02 25:24:43 Delayed N/A
到目前为止我得到了什么
(df['Diff'] = df['CreatedDate'] -
(df.groupby(['Casenumber', 'Site'])['CreatedDate'].transform('first')))
谢谢你的帮助!你知道吗
最后,我使用了透视表格式。从具有多索引的数据透视开始。你知道吗
然后我开始创建子pivot表,其中包含任何Casenumber,这些Casenumber对于我要查找的响应没有空值。你知道吗
最后,执行一个计算,只得到批准的时间和分配的时间之间的差异。你知道吗
首先确保“CreatedDate”列是datetime:
那么这应该管用。你知道吗
查看其他可能有用的帖子。 How to calculate time difference by group using pandas?
相关问题 更多 >
编程相关推荐