Pandy: jak wybrać wiersze dataframe według sygnatury czasowej


Możesz użyć następującej podstawowej składni, aby wybrać wiersze między dwoma znacznikami czasu w ramce danych pandy:

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

W tej składni zakłada się, że tstamp ma już typ datetime.

Jeśli nie, możesz użyć następującej składni, aby przekonwertować ją na kolumnę typu datetime:

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

Poniższy przykład pokazuje, jak zastosować tę składnię w praktyce.

Przykład: wybierz wiersze Pandas DataFrame według sygnatury czasowej

Załóżmy, że mamy następującą ramkę DataFrame pand zawierającą informacje o sprzedaży w sklepie detalicznym:

 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

Załóżmy, że chcemy wybrać tylko wiersze znajdujące się pomiędzy następującymi dwoma znacznikami czasu:

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

W tym celu możemy użyć następującej składni:

 #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

Zauważ, że zaznaczone są tylko linie pomiędzy dwoma określonymi przez nas znacznikami czasu.

Pamiętaj również, że możesz wybierać wiersze według sygnatury czasowej, używając wyłącznie wartości daty.

Na przykład moglibyśmy użyć poniższego kodu, aby wybrać wszystkie wiersze ze znacznikiem czasu większym niż 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

Pamiętaj, że wybierane są tylko wiersze, których wartość w kolumnie tsamp jest późniejsza niż 27.10.2022 r.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w pandach:

Jak przekonwertować DateTime na datę w Pandach
Jak przekonwertować kolumny na DateTime w Pandach
Jak posortować ramkę danych Pandas według daty

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *