python - 在python中按半小时间隔对文件列表进行分组
问题描述
我正在使用 python 2.7,我的文件夹中有一个文件列表,有数千个文件看起来像这样:
20180828-024308.dat
20180828-024434.dat
20180828-030335.dat
20180828-032114.dat
20180828-040041.dat
..........
它们是年、月、日、小时、分钟和秒
我想将所有这些文件分组为半小时间隔,(注意:年月日没有变化)
我想要这样的东西:
1: [20180828-024308.dat,20180828-024434.dat]
2: [20180828-030335.dat,20180828-032114.dat]
3: [20180828-040041.dat,....]
.......
我认为列表对我来说很好,或者可能是数据框。
谢谢您的帮助!
解决方案
来自:-我的理解,假设您的数据框如下所示:
print(df)
files
0 20180828-024308.dat
1 20180828-024434.dat
2 20180828-030335.dat
3 20180828-032114.dat
4 20180828-040041.dat
df['file_time']= pd.to_datetime(df['files'].str.split('.dat').str[0])
df.groupby([pd.Grouper(key='file_time',freq='1800s')])['files'].apply(list).reset_index()
输出:
file_time files
0 2018-08-28 02:30:00 [20180828-024308.dat, 20180828-024434.dat]
1 2018-08-28 03:00:00 [20180828-030335.dat, 20180828-032114.dat]
2 2018-08-28 03:30:00 []
3 2018-08-28 04:00:00 [20180828-040041.dat]
注意:由于 3:30-4 范围内没有文件,因此列表为空。
推荐阅读
- java - 为生成的 api rest 客户端配置连接和读取超时
- json - 网站迁移后无法在 Wordpress 中添加页面(我更改了主机文件,以便在转换到新主机之前可以在网站上工作)
- kotlin - Kotlin 对 Optional 的多平台支持
- java - 为 Java 的 lambda 主体提供这个关键字会有什么问题?
- java - 引起:org.springframework.beans.factory.NoSuchBeanDefinitionException:没有名为“entityManagerFactory”的bean可用
- javascript - 使用 imap 和节点获取所有未读电子邮件的列表并记录该电子邮件的发件人和主题
- python-sphinx - Sphinx-reST-RTD 中的预格式化(逐字)超链接
- regex - 确保标点符号始终以正确的方式放置
- scala - 在scala中使用递归函数解析复杂地图
- django - 我只想用 django 一键编辑一个数据库字段