Я хочу использовать tsfresh для извлечения автоматических функций с помощью python из моих csv-файлов временных рядов. Есть около 300 CSV-файлов с одним столбцом около 1500000 записей. Первая запись - это метка. В целях тестирования я просто использую 9 CSV-файлов и сокращаю записи в сто тысяч раз.
Чтобы получить правильный формат для tsfresh из CSV, я использую следующий код.
import numpy as np
def CSV_File_Loop(Path_File):
list1 = []
files = [ join(Path_File,f) for f in listdir(Path_File) if isfile(join(Path_File,f)) and '.csv' in f]
ID = 1
global list2
global list3
list3 = []
list2 = []
for f in files:
csv_input = pd.read_csv(f, header = None)
a = csv_input.iloc[::100000]
label = csv_input[0][0]
list3.append(int(label))
time = [i for i in range(len(a))]
a["Data"] = a
a["Label"] = int(label)
list2.append(str(ID))
a["ID"] = str(ID)
a["Time"] = time
new_csv_input = a[1:]
list1.append(new_csv_input)
ID += 1
df = pd.concat(list1)
df1 = df.iloc[:,[3,4,1]]
Y = pd.Series(list3, index = list2 )
Когда я ввожу df1 в extract_features, я получаю 794 функции.
from tsfresh import extract_features
extracted_features= extract_features(df1, column_id="ID", column_value="Data", column_sort="Time")
Снимок экрана
После этого я хотел бы уменьшить количество функций.
from tsfresh import select_features
from tsfresh.utilities.dataframe_functions import impute
impute(extracted_features)
feature_filteres = select_features(extracted_features, Y)
Я не получаю сообщение об ошибке, но оно говорит мне, что кадр данных пуст.
! Пустой кадр данных
Большое спасибо за вашу помощь.