python - Pandas 持续时间 groupby - 以定义的值开始组范围
问题描述
我正在尝试以 5 分钟的间隔对旅行持续时间的数据集进行分组,从 0 到 inf。我该怎么做?
我的示例数据框如下所示:
Duration
0 00:01:37
1 00:18:19
2 00:22:03
3 00:41:07
4 00:11:54
5 00:21:34
我用过这段代码:df.groupby([pd.Grouper(key='Duration', freq='5T')]).size()
我发现了以下结果:
Duration
00:01:37 1
00:06:37 0
00:11:37 1
00:16:37 2
00:21:37 1
00:26:37 0
00:31:37 0
00:36:37 1
00:41:37 0
Freq: 5T, dtype: int64
我的预期结果是:
Duration Counts
00:00:00 0
00:05:00 1
00:10:00 0
00:15:00 1
00:20:00 1
........ ...
我的期望是索引将从而00:00:00
不是00:01:37
.
或者,显示垃圾箱也对我有用,我的意思是:
Duration Counts
0-5 1
5-10 0
10-15 1
15-20 1
20-25 2
........ ...
我需要你的帮助。谢谢你。
解决方案
首先,你需要把时间缩短到第 5 分钟。然后简单地数一下。我想这就是你要找的 -
def round_to_5min(t):
""" This function rounds a timedelta timestamp to the nearest 5-min mark"""
t = datetime.datetime(1991,2,13, t.hour, t.minute - t.minute%5, 0)
return t
data['new_col'] = data.Duration.map(round_to_5min).dt.time
推荐阅读
- node.js - Nextjs如何在转到下一页时不卸载上一页(保持状态)
- asp.net - 如何使用asp.net 4.0在代码后面获取html chekbox
- python - 如何使用python循环在现有的csv文件中编写完整的字典
- c# - 'await _context.SaveChangesAsync ();'线上出现错误 在 C# 中的 POST api 中
- ios - 如何从函数内部获取 JSON 数据并将其快速显示在文本字段上?
- sql - 这是一个有效的关联子查询吗?
- c++ - 带有模板的 std::function,类型问题,没有匹配的调用函数
- kubernetes - 带有 NFS 挂载的 rabbitmq kubernetes
- java - 创建自动化性能测试
- python - 如何使用python从图像中提取文本或数字