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