Como comparar datas em pandas: com exemplos


Você pode usar os seguintes métodos para comparar datas entre duas colunas em um DataFrame do pandas:

Método 1: Adicione uma nova coluna ao DataFrame que exibe a comparação de datas

 df[' met_due_date '] = df[' comp_date '] < df[' due_date ']

Este exemplo específico adiciona uma nova coluna chamada met_due_date que retorna True ou False dependendo se a data na coluna comp_date é anterior à data na coluna due_date .

Método 2: Filtrar o DataFrame com base na comparação de datas

 df_met_due_date = df[df[' comp_date '] < df[' due_date ']]

Este exemplo específico filtra o DataFrame para manter apenas as linhas cuja data na coluna comp_date é anterior à data na coluna due_date .

Os exemplos a seguir mostram como usar cada um desses métodos na prática com o seguinte DataFrame do pandas:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' task ': ['A', 'B', 'C', 'D'],
                   ' due_date ': ['4-15-2022', '5-19-2022', '6-14-2022', '10-24-2022'],
                   ' comp_date ': ['4-14-2022', '5-23-2022', '6-24-2022', '10-7-2022']})

#convert due_date and comp_date columns to datetime format
df[[' due_date ', ' comp_date ']] = df[[' due_date ', ' comp_date ']]. apply (pd. to_datetime )

#view DataFrame
print (df)

  task due_date comp_date
0 A 2022-04-15 2022-04-14
1 B 2022-05-19 2022-05-23
2 C 2022-06-14 2022-06-24
3 D 2022-10-24 2022-10-07

Exemplo 1: Adicione uma nova coluna ao DataFrame que exibe a comparação de datas

O código a seguir mostra como adicionar uma nova coluna chamada met_due_date que retorna True ou False dependendo se a data na coluna comp_date é anterior à data na coluna due_date .

 import pandas as pd

#create new column that shows if completion date is before due date
df[' met_due_date '] = df[' comp_date '] < df[' due_date ']

#view updated DataFrame
print (df)

  task due_date comp_date met_due_date
0 A 2022-04-15 2022-04-14 True
1 B 2022-05-19 2022-05-23 False
2 C 2022-06-14 2022-06-24 False
3 D 2022-10-24 2022-10-07 True

Para cada linha no DataFrame, a nova coluna met_due_date indica se a data na coluna comp_date é anterior à data na coluna due_date .

Por exemplo, podemos ver que a Tarefa A tinha data de vencimento em 15/04/2022 e data de conclusão em 14/04/2022.

Como a data de conclusão foi anterior à data de vencimento, o valor da coluna met_due_date é True.

Exemplo 2: Filtre o DataFrame com base na comparação de datas

O código a seguir mostra como filtrar o DataFrame para conter apenas linhas cuja data na coluna comp_date seja anterior à data na coluna due_date .

 import pandas as pd

#filter for rows where completion date is before due date
df_met_due_date = df[df[' comp_date '] < df[' due_date ']]

#view results
print (df_met_due_date)

  task due_date comp_date
0 A 2022-04-15 2022-04-14
3 D 2022-10-24 2022-10-07

O novo DataFrame foi filtrado para conter apenas linhas cuja data na coluna comp_date seja anterior à data na coluna due_date .

Recursos adicionais

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

Como criar um intervalo de datas no Pandas
Como converter carimbo de data/hora em data/hora no Pandas
Como calcular a diferença entre duas datas em pandas

Add a Comment

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