Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 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()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement