Pandas: як вибрати рядки dataframe за міткою часу


Ви можете використовувати наступний базовий синтаксис, щоб вибрати рядки між двома мітками часу в pandas DataFrame:

 df[(df[' tstamp '] > ' 2022-10-25 04:30:00 ') & (df[' tstamp '] < ' 2022-10-27 11:00:00 ')]

Цей синтаксис передбачає, що tstamp уже має тип datetime.

Якщо ні, ви можете використати такий синтаксис, щоб перетворити його на стовпець дати й часу:

 df[' tstamp '] = pd. to_datetime (df[' tstamp '])

У наступному прикладі показано, як використовувати цей синтаксис на практиці.

Приклад: виберіть рядки Pandas DataFrame за міткою часу

Припустімо, що у нас є такий фрейм даних pandas, який містить інформацію про продажі в роздрібному магазині:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' tstamp ': ['2022-10-25 04:00:00', '2022-10-25 11:55:12',
                                 '2022-10-26 02:00:00', '2022-10-27 10:30:00',
                                 '2022-10-27 14:25:00', '2022-10-28 01:15:27'],
                   ' sales ': [18, 22, 19, 14, 14, 11]})

#view DataFrame
print (df)

                tstamp sales
0 2022-10-25 04:00:00 18
1 2022-10-25 11:55:12 22
2 2022-10-26 02:00:00 19
3 2022-10-27 10:30:00 14
4 2022-10-27 14:25:00 14
5 2022-10-28 01:15:27 11

Припустімо, ми хочемо вибрати лише рядки між наступними двома мітками часу:

  • 2022-10-25 04:30:00
  • 2022-10-27 11:00:00

Для цього ми можемо використати такий синтаксис:

 #convert timestamp column to datetime dtype
df[' tstamp '] = pd. to_datetime (df[' tstamp '])

#select rows between two timestamps
df[(df[' tstamp '] > ' 2022-10-25 04:30:00 ') & (df[' tstamp '] < ' 2022-10-27 11:00:00 ')]

	tstamp sales
1 2022-10-25 11:55:12 22
2 2022-10-26 02:00:00 19
3 2022-10-27 10:30:00 14

Зауважте, що вибрано лише рядки між двома вказаними нами часовими мітками.

Також зауважте, що ви можете вибрати рядки за міткою часу, використовуючи лише значення дати.

Наприклад, ми можемо використати наступний код, щоб вибрати всі рядки з міткою часу, більшою за 2022-10-27:

 #convert timestamp column to datetime dtype
df[' tstamp '] = pd. to_datetime (df[' tstamp '])

#select rows with timestamp after 2022-10-27
df[df[' tstamp '] > ' 2022-10-27 ']

	tstamp sales
3 2022-10-27 10:30:00 14
4 2022-10-27 14:25:00 14
5 2022-10-28 01:15:27 11

Зауважте, що вибираються лише рядки, значення яких у стовпці tsamp є пізнішим за 2022-10-27.

Додаткові ресурси

У наступних посібниках пояснюється, як виконувати інші типові завдання в pandas:

Як перетворити DateTime на дату в Pandas
Як перетворити стовпці на DateTime у Pandas
Як відсортувати Pandas DataFrame за датою

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *