首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python -使用Pandas为每个唯一标识符计算日期之间的时间

Python -使用Pandas为每个唯一标识符计算日期之间的时间
EN

Stack Overflow用户
提问于 2020-07-21 20:06:03
回答 1查看 287关注 0票数 1

我已经被这个问题困扰了一段时间了,我希望能得到一些帮助。这是我正在使用的一个熊猫数据帧的简化版本:

代码语言:javascript
运行
复制
ID  Date
1   16/07/2020 14:11:12
1   17/07/2020 15:12:11
1   16/07/2020 15:32:44
1   16/07/2020 17:11:24
2   19/07/2020 06:11:12
2   19/07/2020 12:12:11
2   20/07/2020 14:32:44
2   20/07/2020 02:11:24

我想通过使用每个ID的最小值并减去持有相同ID的行的时间来计算时间。但是,我希望格式为hh:mm:ss,如果差异超过24小时,则为37:44:22。

这是我希望的结果应该是什么样子。

代码语言:javascript
运行
复制
ID  Date                    time
1   16/07/2020 14:11:12     00:00:00
1   17/07/2020 18:32:23     28:21:11
1   16/07/2020 18:32:44     04:21:32
1   16/07/2020 17:11:24     00:00:12
2   19/07/2020 06:11:12     00:00:00
2   19/07/2020 12:12:12     06:01:00
2   20/07/2020 14:32:44     26:20:32

我已经找到了之前的问题,比如这个Calculate Pandas DataFrame Time Difference Between Two Columns in Hours and Minutes,但是大多数问题都是从同一行中减去日期。但是,在我的示例中,我必须找到日期最早的ID,并使用它来查找具有相同id的行的时间差。

EN

Stack Overflow用户

回答已采纳

发布于 2020-07-21 20:09:19

首先通过to_datetime将列转换为datetimes,然后通过GroupBy.transform减去每组的最小值,最后使用timedeltas的自定义格式的自定义函数

代码语言:javascript
运行
复制
df['Date'] = pd.to_datetime(df['Date'], dayfirst=True)

def f(x):
    ts = x.total_seconds()
    hours, remainder = divmod(ts, 3600)
    minutes, seconds = divmod(remainder, 60)
    return ('{:02d}:{:02d}:{:02d}').format(int(hours), int(minutes), int(seconds)) 

df['time1'] = df['Date'].sub(df.groupby('ID')['Date'].transform('min')).apply(f)
print (df)
   ID                Date      time     time1
0   1 2020-07-16 14:11:12  00:00:00  00:00:00
1   1 2020-07-17 18:32:23  28:21:11  28:21:11
2   1 2020-07-16 18:32:44  04:21:32  04:21:32
3   1 2020-07-16 17:11:24  00:00:12  03:00:12
4   2 2020-07-19 06:11:12  00:00:00  00:00:00
5   2 2020-07-19 12:12:12  06:01:00  06:01:00
6   2 2020-07-20 14:32:44  26:20:32  32:21:32
票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63014186

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档