首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何为datetime在特定时间间隔内的pandas df行分配组标签?

如何为datetime在特定时间间隔内的pandas df行分配组标签?
EN

Stack Overflow用户
提问于 2021-04-06 21:50:46
回答 1查看 47关注 0票数 1

我正在尝试根据.txt文件的创建时间对其进行排序。一组6-8个.txt文件每天在几分钟内多次创建。我不知道确切的时间间隔,我将不得不找到一种方法来自动找到最匹配的日期-时间(例如,所有间隔小于15分钟的日期-时间)。我已经能够提取每个文件的DateTime。现在,我想分配一个组标签,指示在一个集合中创建了哪些.txt文件(即,在几分钟内彼此相隔)。

我当前的df如下所示:

代码语言:javascript
运行
复制
index                         values
2020-09-06 17:25:14           97
2020-09-06 17:25:33            0
2020-09-06 17:27:00            3
2020-09-06 17:28:13            7
2020-09-06 17:29:28           10
2020-09-06 17:30:07           26
2020-09-06 17:30:40           34
2020-09-06 17:31:13           34
2020-09-06 18:07:34           99
2020-09-06 18:08:07            0
2020-09-06 18:08:35            3
2020-09-06 18:09:00            8
2020-09-06 18:09:24           11
2020-09-06 18:09:57           32
2020-09-06 18:10:24           43
2020-09-06 19:03:45           99
2020-09-06 19:04:31            0

我想自动为17:25到17:31之间的所有行分配标签"a“,然后为18:07到18:10之间的所有行分配标签"b”,然后为19:03到19:04之间的所有行分配标签"c“。

我找到的大多数解决方案,只有aggregate (pd.groupby(),pd.resample(),pd。grouper())。我可以使用这些方法之一来创建我的标签吗?

我认为this可能是一个有用的开始,但据我对解决方案的理解,它只为我创建指定索引的特定索引。

谢谢(我很乐意分享一个示例.txt文件和我的代码,如果这是可能的话?)

EN

回答 1

Stack Overflow用户

发布于 2021-04-06 22:00:12

创建您的条件和选择,然后使用df.between_timenp.select

代码语言:javascript
运行
复制
cond = [df.index.isin(df.between_time('17:25', '17:31').index), 
        df.index.isin(df.between_time('18:07', '18:10').index),
        df.index.isin(df.between_time('19:03', '19:04').index)]

choices = ['a', 'b', 'c']

df['new_col'] = np.select(cond, choices, np.nan)

                     values new_col
index                              
2020-09-06 17:25:14      97       a
2020-09-06 17:25:33       0       a
2020-09-06 17:27:00       3       a
2020-09-06 17:28:13       7       a
2020-09-06 17:29:28      10       a
2020-09-06 17:30:07      26       a
2020-09-06 17:30:40      34       a
2020-09-06 17:31:13      34     nan
2020-09-06 18:07:34      99       b
2020-09-06 18:08:07       0       b
2020-09-06 18:08:35       3       b
2020-09-06 18:09:00       8       b
2020-09-06 18:09:24      11       b
2020-09-06 18:09:57      32       b
2020-09-06 18:10:24      43     nan
2020-09-06 19:03:45      99       c
2020-09-06 19:04:31       0     nan
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66969979

复制
相关文章

相似问题

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