import numpy as np import pandas as pd import matplotlib.pyplot as plt # Загрузка данных из файла CSV file_path = 'data.csv' data = pd.read_csv(file_path) # Определение временной переменной time_column = 'Time' # Замените 'Time' на название временной переменной в вашем файле CSV # Выделение значений времени и соответствующих данных time_values = data[time_column] data_values = data.drop(columns=[time_column]) # Удаление линейного тренда def remove_trend(data): x = np.arange(len(data)) slope, intercept = np.polyfit(x, data, 1) trend = slope * x + intercept detrended_data = data - trend return detrended_data detrended_data = data_values.apply(remove_trend, axis=0) # Сохранение обработанных данных в новый файл CSV detrended_data.to_csv('detrended_data.csv', index=False) # Визуализация исходных и обработанных данных для одного измерения plt.figure(figsize=(10, 6)) plt.plot(time_values, data_values.iloc[:, 0], label='Исходные данные', color='blue') plt.plot(time_values, detrended_data.iloc[:, 0], label='Обработанные данные (без тренда)', color='red') plt.xlabel('Время') plt.ylabel('Значение') plt.title('Удаление линейного тренда из данных') plt.legend() plt.grid(True) plt.show()