Проблема со сравнением полей даты в фрейме данных Pandas

#python #pandas #dataframe

Вопрос:

У меня есть фрейм данных pandas («df»), и я пытаюсь отфильтровать date столбец, чтобы включить данные только до 2020 года. Я попробовал два подхода для определения правильной оси дат, и оба они всегда верны, независимо от даты. Есть какие-нибудь предложения?

Подход № 1:

 df['jan2020'] = pd.to_datetime('2020-01-01')
for row in range(df.shape[0]):
    df['boolCol'] = (df.iloc[row,0] <= df['jan2020'])
df.head(500)
 

Подход № 2:

 df['date'] = pd.to_datetime(df['date'])
start_date = df['date'].min()
end_date = pd.to_datetime('2020-01-01')
mask = (df['date'] >= start_date) amp; (df['date'] <= end_date)
df['mask']=mask
print(df['mask'])
 

Ответ №1:

Попробуйте что-нибудь вроде df = df[pd.to_datetime(df['date']) < '2020-01-01']