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