Pandas: como selecionar linhas entre duas datas


Você pode usar a seguinte sintaxe para selecionar linhas entre duas datas específicas em um DataFrame do pandas:

 df[df. date . between (' 2022-01-02 ', ' 2022-01-06 ')]

Este exemplo específico seleciona todas as linhas no DataFrame entre 02/01/2022 e 06/01/2022.

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

Exemplo: selecione linhas entre duas datas no Pandas

Suponha que temos o seguinte DataFrame do pandas:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' date ': pd. date_range (start=' 1/1/2022 ', periods= 8 ),
                   ' sales ': [18, 20, 15, 14, 10, 9, 8, 12],
                   ' returns ': [5, 7, 7, 9, 12, 3, 2, 4]})

#view DataFrame
print (df)

        date sales returns
0 2022-01-01 18 5
1 2022-01-02 20 7
2 2022-01-03 15 7
3 2022-01-04 14 9
4 2022-01-05 10 12
5 2022-01-06 9 3
6 2022-01-07 8 2
7 2022-01-08 12 4

Podemos usar a seguinte sintaxe para selecionar apenas linhas entre as datas 02/01/2022 e 06/01/2022:

 #select all rows where date is between 2022-01-02 and 2022-01-06
df[df. date . between (' 2022-01-02 ', ' 2022-01-06 ')]

              date sales returns
1 2022-01-02 20 7
2 2022-01-03 15 7
3 2022-01-04 14 9
4 2022-01-05 10 12
5 2022-01-06 9 3

Observe que apenas as linhas entre as datas 2022-01-02 e 2022-01-06 são selecionadas.

Se desejar, você também pode definir as datas de início e término fora da função between() :

 #define start and end dates
start_date = ' 2022-01-02 '
end_date = ' 2022-01-06 '

#select all rows where date is between start and end
df[df. date . between (start_date, end_date)]


              date sales returns
1 2022-01-02 20 7
2 2022-01-03 15 7
3 2022-01-04 14 9
4 2022-01-05 10 12
5 2022-01-06 9 3

Isso produz o mesmo resultado.

Observe que se sua coluna de data não estiver em um formato de data e hora reconhecível, talvez seja necessário primeiro usar o seguinte código para convertê-la para o formato de data e hora:

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

Depois de fazer isso, você pode usar a função between() para selecionar linhas entre datas específicas.

Recursos adicionais

Os tutoriais a seguir explicam como realizar outras operações comuns em pandas:

Como criar um intervalo de datas no Pandas
Como extrair o mês da data no Pandas
Como converter carimbo de data/hora em data/hora no Pandas

Add a Comment

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