我有一个目录“ ... / data”,其中有多个子目录,这些子目录的名称是序列号以及一些无用的信息,例如“ 17448_2017_Jul_2017_Oct”,其中的第一个数字是序列号。在每个子目录中,我有四个“ .txt”文件,其行/行具有日期和时间信息,以及某种类型的属性(例如湿度),在每个子目录中的命名方式相同,例如“ 2019-01-29 03:11:26 54.7”。每个.txt文件顶部的前八行也应删除。
我要编程的内容:一种代码,用于为每个序列号生成数据帧,并在名为“ Machine”的列中将子目录名称中的子目录序列号,日期/时间作为数据帧索引以及每种类型的作为诸如atr1,atr2,atr3和atr4之类的列的属性。
我的第一次审判是:
path = "/home/marlon/Shift One/Projeto Philips/Consolidação de Arquivos/dados"
for i in os.listdir(path):
if os.path.isfile(os.path.join(path,i)) and '17884' in i:
with open(path + i, 'r') as f:
但是,正如您所看到的,我完全迷路了...:/
非常感谢您的帮助!
答案 0 :(得分:0)
IIUC,您可以尝试执行以下操作(请注意,这只是开始进行测试和反馈,因为我目前无法在手机上进行测试)
import os
import pandas as pd
path = "/home/marlon/Shift One/Projeto Philips/Consolidação de Arquivos/dados/"
df = pd.DataFrame()
for fld in os.listdir(path):
subfld = path + fld
if os.path.isdir(subfld):
aux = pd.DataFrame()
sn = fld.split('_')[0]
for file in os.listdir(subfld):
filepath = os.path.join(subfld, file)
if os.path.isfile(filepath):
new_col = pd.read_fwf(filepath, colspecs=[(0, 19), (20, -1)], skiprows=8, header=None, parse_dates=[0], index_col=0)
aux = pd.concat([aux, new_col], axis=1)
aux['Machine'] = sn
df = df.append(aux)
但是,我想知道每个文件夹中的4个测量文件是否都具有相同的索引时间值,否则将它们连接在一起会出现问题。