Вопрос не проясняет, должно ли сравнение быть поэлементным или охватывать фреймы данных.Если есть совпадающие строки, но индекс не выровнен, сравнение с использованием isin () даст ложный результат.
df
A B
0 3 3
1 1 1
2 2 2
df2
A B
0 1 1
1 2 2
Используйте «внешнее» слияние с индикатором, чтобы найти строки, присутствующие в левом кадре данных,
diff = df.merge(df2, indicator=True, how='outer')
diff.loc[diff['_merge'] == 'left_only', df.columns]
A B
0 3 3
Решение с isin вернет,
A B
0 3 3
1 1 1
2 2 2
Редактировать:Чтобы ответить на дополнительный вопрос.Если столбец даты в одном из фреймов данных является объектом, сначала преобразуйте его в дату и время, используя
df['date'] = pd.to_datetime(df['date'])