pandas метка времени сбора каждые 15 минут, - PullRequest
0 голосов
/ 13 июля 2020

У меня есть фрейм данных, в котором первый столбец col1 - метка даты, столбец 2 - значение. Эти данные каждые 1 минуту могут быть минутами, которые могут исчезнуть между данными. Мне нужно выбрать только данные интервала 15 минут. Т.е. фрейм данных данных 00, 15, 30 45 минут. Как я могу выбрать данные за 15 минут.

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

import pandas as pd
df=pd.read_excel("Dhamra_May2020.xlsx")
dfwith15mintues=df[::15]# this is giving every 15 index number , which i dont want.
dfwith15mintues.to_csv("second_final_dhamra15mintues.csv",index=None,sep=",")
print(dfwith15mintues.head())

1 Ответ

1 голос
/ 13 июля 2020

Один из возможных вариантов - использовать .loc и выбирать только те времена, когда минутная часть вашего времени находится в [0, 15, 30, 45]:

import pandas as pd
import numpy as np
df = (pd.DataFrame({'t1': pd.date_range(start="2020-01-01 13:00 ", end="2020-01-01 14:00", freq="T"),
                    })
      )
df['sea_level'] = np.random.randint(2000, high=3000, size=df.shape[0])/1000

print(df.loc[df['t1'].dt.minute.isin([0, 15, 30, 45])])

, что приводит к

                    t1  sea_level
0  2020-01-01 13:00:00      2.712
15 2020-01-01 13:15:00      2.049
30 2020-01-01 13:30:00      2.889
45 2020-01-01 13:45:00      2.856
60 2020-01-01 14:00:00      2.571

В качестве альтернативы вы можете использовать функцию modulo, чтобы найти те значения минутной части, которые делятся на 15 без остатка.

Запись данных в файл тогда go с: df.loc[df['t1'].dt.minute.isin([0, 15, 30, 45])].to_excel("file.xlsx").

...