Агрегирование нескольких текстовых файлов в разных подкаталогах - PullRequest
0 голосов
/ 28 февраля 2020

Я пытаюсь объединить несколько текстовых файлов с двумя столбцами, время и значение. У меня 41 папка с разными именами, и в этих папках находится папка с результатами. В папке результатов находятся 5 текстовых файлов A CC, BVP, EDA, HR и TEMP. Я пытаюсь агрегировать каждый A CC, BVP, et c. TXT файл на другой и распечатать каждый файл в моей выходной папке. Код, который у меня есть, объединяет все файлы, но не выводится в правильном формате. Кажется, что в какой-то момент все портится, добавляя слишком много запятых между значениями и затем агрегируя оттуда. Вот код, который я пробовал, и буду признателен за любую помощь!

import os
import pandas as pd


data_path = r'Data'
data_path = data_path.replace('\\','/')
os.chdir(data_path)
results=['results7'] 
data_file_list = os.listdir(data_path)

results = '/results7'

columns=['time', 'value']

df_acc = pd.DataFrame()
df_bvp = pd.DataFrame()
df_eda = pd.DataFrame()
df_hr = pd.DataFrame()
df_temp = pd.DataFrame()

acc = '/ACC.txt'
bvp = '/BVP.txt'
eda = '/EDA.txt'
hr = '/HR.txt'
temp = '/TEMP.txt'


data_path += '/'
x=0
for data_file_name in data_file_list:
        x+=1
        print(x)
        acc_path = data_path + str(data_file_name) + results + acc
        bvp_path = data_path + str(data_file_name) + results + bvp
        eda_path = data_path + str(data_file_name) + results + eda
        hr_path = data_path + str(data_file_name) + results + hr
        temp_path = data_path + str(data_file_name) + results + temp

        if df_acc.empty == False:
            df1 = pd.read_csv(acc_path, sep=',',header = 1, engine='python')
            df2 = pd.read_csv(bvp_path, sep=',',header = 1, engine='python')
            df3 = pd.read_csv(eda_path, sep=',',header = 1, engine='python')
            df4 = pd.read_csv(hr_path, sep=',',header = 1, engine='python')
            df5 = pd.read_csv(temp_path, sep=',',header = 1, engine='python')
            df_acc = pd.concat([df_acc,df1])
            df_bvp = pd.concat([df_bvp,df2])
            df_eda = pd.concat([df_eda,df3])
            df_hr = pd.concat([df_hr,df4])
            df_temp = pd.concat([df_temp,df5])
        else:
            df_acc = pd.read_csv(acc_path, sep=',',header = 1, engine='python')
            df_bvp = pd.read_csv(bvp_path, sep=',',header = 1, engine='python')
            df_eda = pd.read_csv(eda_path, sep=',',header = 1, engine='python')
            df_hr = pd.read_csv(hr_path, sep=',',header = 1, engine='python')
            df_temp = pd.read_csv(temp_path, sep=',',header = 1, engine='python')


data_path = r'Data_Output'
data_path = data_path.replace('\\','/')
os.chdir(data_path)

accf = data_path + acc
bvpf = data_path + bvp
edaf = data_path + eda
hrf = data_path + hr
tempf = data_path + temp


df_acc.to_csv(data_path + 'acc.txt', index = False)
df_bvp.to_csv(data_path + '/bvp.txt', index = False)
df_eda.to_csv(data_path + '/eda.txt', index = False)
df_hr.to_csv(data_path + '/hr.txt', index = False)
df_temp.to_csv(data_path + '/temp.txt', index = False)

try:
    os.remove(accf)
    os.remove(bvpf)
    os.remove(edaf)
    os.remove(hrf)
    os.remove(tempf)
    df_acc.to_csv(accf, index = False)
    df_bvp.to_csv(bvpf, index = False)
    df_eda.to_csv(edaf, index = False)
    df_hr.to_csv(hrf, index = False)
    df_temp.to_csv(tempf, index = False)
    print('deleted and rewritten')
except:
    df_acc.to_csv(accf, index = False)
    df_bvp.to_csv(bvpf, index = False)
    df_eda.to_csv(edaf, index = False)
    df_hr.to_csv(hrf, index = False)
    df_temp.to_csv(tempf, index = False)
    print('written')

Пример вывода

0.0,2019-11-07 15:48:02,2019-11-13 10:49:08,2019-11-13 19:42:42,2019-11-14 23:21:55,2019-11-17 10:56:06,2019-11-18 18:41:57,2019-11-20 14:44:31,2019-11-21 23:13:28,2019-11-23 11:44:17,2019-11-25 11:27:25,2019-11-26 15:56:09,2019-11-28 11:54:26,2019-11-30 15:47:35,2019-12-04 17:44:29,2019-12-06 14:32:10,2019-12-08 20:24:15,2019-12-10 19:34:39,2019-12-13 06:39:55,2019-12-15 00:18:13,2019-12-16 19:18:47,2019-12-18 16:14:35,2019-12-20 17:03:33,2019-12-22 17:09:11,2019-12-24 11:20:48,2019-12-26 12:23:05,2019-12-28 01:39:38,2019-12-29 23:48:39,2020-01-02 11:41:23,2020-01-04 13:57:56,2020-01-06 15:03:00,2020-01-08 12:39:21,2020-01-10 12:50:50,2020-01-13 13:46:24,2020-01-15 21:13:53,2020-01-21 02:22:19,2020-01-22 22:49:07,2020-01-24 15:33:03,2020-01-26 23:48:44,2020-01-29 00:28:01,2020-01-30 20:47:08,2020-02-01 17:49:12
1.807,2019-11-07 15:48:03,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
0.138,2019-11-07 15:48:04,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
...