Ваша логика верна, но проблема в сравнении.
Рассмотрим этот пример,
df1 = pd.DataFrame({'Date': {0: '26/1/2016 ', 1: '27/1/2016 '}})
df1
Вывод:
Date
0 26/1/2016
1 27/1/2016
Другие данные,
date_range = pd.date_range('2016-01-26', '2016-01-27')
df2 = pd.DataFrame({'Date': date_range})
df2
Вывод:
Date
0 2016-01-26
1 2016-01-27
Давайте сравним даты в другом формате,
print(df2['Date'] == df1['Date'])
Вывод:
0 False
1 False
Name: Date, dtype: bool
Теперь исправьтеформат Date
из df1,
df1['Date'] = pd.to_datetime(df1['Date'])
df1
Вывод:
Date
0 2016-01-26
1 2016-01-27
Давайте снова сравним даты двух кадров данных,
print(df1['Date'] == df2['Date'])
Вывод:
0 True
1 True
Name: Date, dtype: bool
В вашем примере date
в df_clean
имеет неправильный формат, поэтому при сравнении все значения имеют значение false и строки не возвращаются.