по умолчанию, pd.to_datetime
будет интерпретировать и анализировать, например, строку 04/03/2020
как месяц / день / год ( см. Документы ). Однако в вашем случае вы, похоже, используете день / месяц / год в качестве формата ввода, поэтому вам нужно установить для ключевого слова dayfirst
значение True
. Пример:
from datetime import datetime
import pandas as pd
x = datetime(2020, 3, 25)
df = pd.DataFrame({'dateRep': ['04/03/2020', '01/04/2020', '13/06/2019', '05/04/2020'],
'countriesAndTerritories': ['Algeria', 'Algeria', 'tmp', 'tmp'],
'v': [0, 1, 0, 0]})
df[(df["countriesAndTerritories"]=="Algeria") & (pd.to_datetime(df["dateRep"], dayfirst=True) > x)]
# dateRep countriesAndTerritories v
# 1 01/04/2020 Algeria 1
, если вы опустите ключевое слово, результаты будут недействительными:
df[(df["countriesAndTerritories"]=="Algeria") & (pd.to_datetime(df["dateRep"]) > x)]
# dateRep countriesAndTerritories v
# 0 04/03/2020 Algeria 0
Последнее замечание: если вы хотите быть в безопасности, укажите формат даты (времени) ) явно, например, в pd.to_datetime(df["dateRep"], format="%d/%m/%Y")
.