Pandas: como selecionar linhas do dataframe por carimbo de data/hora


Você pode usar a seguinte sintaxe básica para selecionar linhas entre dois carimbos de data/hora em um DataFrame do pandas:

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

Esta sintaxe assume que tstamp já possui um tipo datetime.

Caso contrário, você pode usar a seguinte sintaxe para convertê-lo em uma coluna de data e hora:

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

O exemplo a seguir mostra como usar essa sintaxe na prática.

Exemplo: selecione linhas do Pandas DataFrame por carimbo de data/hora

Suponha que temos o seguinte DataFrame do pandas que contém informações sobre vendas em uma loja de varejo:

 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

Digamos que queremos selecionar apenas as linhas entre os dois carimbos de data/hora a seguir:

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

Podemos usar a seguinte sintaxe para fazer isso:

 #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

Observe que apenas as linhas entre os dois carimbos de data/hora especificados são selecionadas.

Observe também que você pode selecionar linhas por carimbo de data/hora usando apenas um valor de data.

Por exemplo, poderíamos usar o código a seguir para selecionar todas as linhas com um carimbo de data/hora maior que 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

Observe que apenas as linhas cujo valor na coluna tsamp é posterior a 2022-10-27 são selecionadas.

Recursos adicionais

Os tutoriais a seguir explicam como realizar outras tarefas comuns em pandas:

Como converter DateTime em data no Pandas
Como converter colunas para DateTime no Pandas
Como classificar um DataFrame do Pandas por data

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *