python - 从多个目录中的 txt 文件创建 dict
问题描述
我有一系列目录的结构有点像:
例如
basepath>abcd
basepath>abcd>aba
basepath>abcd>aba>abb
basepath>abcd>aba
basepath>abcd>abd
basepath>abcd>abd>add
除了基本路径,目录名称是随机生成的字符串。有几百个不同的目录。
在每个目录中,我有 2 个文件,“body.txt”和“timestamp.txt”。作为最终目标,我希望在一个共同的时间范围内收集每个身体,例如将每个身体分成 1 小时间隔。timestamp.txt 中的数据是秒的整数。
我想象第一个挑战将是获取每个目录和子目录的列表。谁能建议我可以使用什么来获取子目录列表basepath
?
然后我需要一种方法来排序和组织这些数据。我知道 Pandas 有一种方法可以按日期拆分数据,这可能是我所知道的最佳选择。如果有人对不同的方法有任何建议,我可以这样做,我很乐意听到。
作为我如何组织+拆分数据的示例:
Timestamp(s) Body
300 a
301 b
304 c
306 d
301 e
304 f
301 g
306 h
308 i
307 j
Split as an interval of 2 secs
Timestamp(s) Body
300 a
301 b
301 e
301 g
304 c
304 f
306 d
306 h
307 j
308 i
解决方案
# I hope you are able to create the DataFrame
df = pd.DataFrame([[300 ,'a'],
[301 ,'b'],
[304 ,'c'],
[306 ,'d'],
[301 ,'e'],
[304 ,'f'],
[301 ,'g'],
[306 ,'h'],
[308 ,'i'],
[307 ,'j']], columns=['Timestamp(s)', 'Body'])
# Now that you have the DataFrame
df.sort_values(by=['Timestamp(s)'], inplace=True)
df.sort_values(by=['Timestamp(s)'], inplace=True)
df['group_id'] = df['Timestamp(s)'].apply(lambda x: x-x%2)
for group_name, group in df.groupby(['group_id']):
print(group)
输出
0 300 a 300
1 301 b 300
4 301 e 300
6 301 g 300
2 304 c 304
5 304 f 304
3 306 d 306
7 306 h 306
9 307 j 306
8 308 i 308
推荐阅读
- java - 使用 java highlevelrestclient 从 elasticsearch 查询数据
- c# - 如何重新排队失败的后台异步任务
- node.js - 如何在 node.js 中全局使用 socket.io
- python - 熊猫数据框中看不到一些空行
- java - ThreadPoolExecutor : 拉出挂起的任务
- python - 如何使用python对csv文件中的多个单元格进行合并操作?
- java - 整数比整数慢吗?
- bash - bash 脚本在获取时会产生不同的结果
- ios - 如何从子类化 UIButton 切换隐藏 imageView
- r - 根据数据框R中另一列中的值复制值