python-3.x - 如何按属性分组并计算该属性的连续票证之间的时间
问题描述
所以,我正在使用一个大约有 20 列的数据框,但只有两列非常重要。
指数 | ID | 日期 |
---|---|---|
1 | 01-40-50 | 2021-12-01 16:54:00 |
2 | 01-10 | 2021-10-11 13:28:00 |
3 | 03-48-58 | 2021-11-05 16:54:00 |
4 | 01-40-50 | 2021-12-06 19:34:00 |
5 | 03-48-58 | 2021-12-09 12:14:00 |
6 | 01-10 | 2021-08-06 19:34:00 |
7 | 03-48-58 | 2021-10-01 11:44:00 |
总共有 90 个不同的 ID 和几千行。我想做的是:
- 按 ID 对条目进行分组
- 按日期对这些 ID 行进行排序
- 然后计算一个时间戳与另一个时间戳之间的差异
- 并创建一个包含这些条目的列(然后将其可视化为 90 个不同的 ID)
虽然我认为使用函数 groupby 会很容易,但我遇到了很多麻烦。将不胜感激任何关于如何开始的意见!谢谢!
解决方案
你可以这样做:
>>> df.groupby("ID")["Date"].apply(lambda x: x.sort_values().diff())
ID Index
01-10 6 NaT
2 65 days 17:54:00
01-40-50 1 NaT
4 5 days 02:40:00
03-48-58 7 NaT
3 35 days 05:10:00
5 33 days 19:20:00
推荐阅读
- mysql - 如何从用户在 django 基本模板中创建的所有帖子中获取模型字段值的总和?
- flutter - 如何使用 ListViews 实现从退出和关闭 Flutter 应用程序的平滑过渡
- java - Java Spring-boot:如何返回列表而不是单个结果?
- python - 带有输入的图形用户界面
- c - 如何检查文件中是否没有内容,以及如何避免从文件中读取最后一个字符?
- swift - SwiftUI:当分段选取器具有新位置时,视图不会刷新正文
- php - GET请求后关注HTML选择下拉选项
- python - 在python中加载.dat文件
- google-cloud-platform - Google API 0Auth2 无法检索访问令牌
- reactjs - 如何在 React 和 Axios 中管理和发送 httpOnly 存储的 jwt cookie