Смещение временных рядов csv для получения одинаковой начальной позиции и удаление точек данных при необходимости

#python #time-series #shift

#python #временные ряды #сдвиг

Вопрос:

Я изо всех сил пытаюсь найти способ «сдвинуть» данные из .csv, чтобы привести все .csv к четной начальной позиции?

Есть ли простой метод в Python для этого?

На моей фотографии ниже ряды данных, которые сдвинуты, находятся в черном прямоугольнике, и я хочу переместить их влево. Было бы неплохо также выбросить первые точки (где y = 20); поскольку эти точки данных для меня не важны.

 # We will first set a variable for the filenames that start with K, and another variable for the filenames
# that start with a Z.  The glob function allows us to reach through the directory searching only for these files.
filenamesK = glob("C:/Users/Kl*.csv")


# We will create a function for plotting, instead of nesting lots of if statements within a long for-loop.
def plot_data(filename, fig_ax, color):
    
    df = pd.read_csv(f, sep=',',skiprows=24) # Read in the csv.
    df.columns=['sample','Time','ms','Temp1'] # Set the column names
    df=df.astype(str) # Set the data type as a string.

    df["Temp1"] = df["Outlet"].str.replace('  ', '').str.replace(' ', '').astype(float) # Convert to float
                           
    fig_ax.plot(df[["Temp1"]], color=color)

fig, ax = plt.subplots(figsize=(20, 15))


for f in filenamesK:
    plot_data(f, ax, 'red')

#for f in filenamesZ:
 #   plot_data(f, ax, 'blue')
      

plt.show()
 

введите описание изображения здесь

Комментарии:

1. не должны fig, ax = plt.subplots(figsize=(20, 15)) быть сведены в таблицу, чтобы соответствовать def? Для тестов не могли бы вы создать не менее 2 образцов csv?

2. Хм, похоже, это работает с plt.subplots снаружи. Во-вторых, каков наилучший способ прикрепить csv?

3. цитата из домашней политики: Sample data should be of sufficiently small size to avoid requiring attachments to communicate. , может быть, просто приведите несколько строк из двух разных серий, просто чтобы попробовать этот сдвиг во времени. Даже с очень небольшим количеством данных мы должны видеть вещи

Ответ №1:

Вы можете читать свои переменные с помощью index

df[«Temp1»][50:100] df[«Outlet»] [50:100]

Помните, что все переменные, которые вам нужны для построения графика, имеют одинаковое измерение.

Пока.