Panda's: dataframe-rijen selecteren op tijdstempel
U kunt de volgende basissyntaxis gebruiken om rijen tussen twee tijdstempels in een Panda DataFrame te selecteren:
df[(df[' tstamp '] > ' 2022-10-25 04:30:00 ') & (df[' tstamp '] < ' 2022-10-27 11:00:00 ')]
Deze syntaxis gaat ervan uit dat tstamp al een datetime-type heeft.
Als dit niet het geval is, kunt u de volgende syntaxis gebruiken om deze naar een datetime-kolom te converteren:
df[' tstamp '] = pd. to_datetime (df[' tstamp '])
Het volgende voorbeeld laat zien hoe u deze syntaxis in de praktijk kunt gebruiken.
Voorbeeld: selecteer Pandas DataFrame-rijen op tijdstempel
Stel dat we het volgende panda’s DataFrame hebben dat informatie bevat over de verkopen in een winkel:
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
Stel dat we alleen de rijen tussen de volgende twee tijdstempels willen selecteren:
- 25-10-2022 04:30:00
- 27-10-2022 11:00:00
We kunnen hiervoor de volgende syntaxis gebruiken:
#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
Houd er rekening mee dat alleen de regels tussen de twee tijdstempels die we hebben opgegeven, zijn geselecteerd.
Houd er ook rekening mee dat u rijen kunt selecteren op tijdstempel met alleen een datumwaarde.
We kunnen bijvoorbeeld de volgende code gebruiken om alle rijen te selecteren met een tijdstempel groter dan 27-10-2022:
#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
Houd er rekening mee dat alleen rijen waarvan de waarde in de tsamp- kolom later is dan 27-10-2022 worden geselecteerd.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in panda’s kunt uitvoeren:
Hoe DateTime naar datum te converteren in Pandas
Hoe kolommen naar DateTime in Pandas te converteren
Hoe een Pandas DataFrame op datum te sorteren