我正在尝试根据创建.txt文件的时间对其进行排序。一组6-8.txt文件每天在几分钟内创建多次。我不知道确切的时间间隔,我必须找到一种方法来自动找到最接近的匹配日期时间(例如,所有相隔不到15分钟的时间(。我已经能够提取每个文件的DateTime。现在,我想分配一个组标签,指示在一个集合中创建了哪些.txt文件(即,在几分钟内彼此间隔(。
我当前的df如下:
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
我想自动分配标签";a";到17:25和17:31之间的所有行;b";到18:07和18:10之间的所有行;c";到19:03到19:04之间的所有行。
我找到的大多数解决方案,只有聚合(pd.groupby((,pd.resample((,pd.grouper(((。我可以使用其中一种方法创建标签吗?
我认为这可能是一个有用的开始,但就我所了解的解决方案而言,它只为我创建了指定索引的某个索引
谢谢(我很高兴分享一个示例.txt文件和我的代码,如果这在这里是可能的?(
创建您的条件和选择,然后使用df.time和np.select.
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