Я не совсем понял, что вы хотите, чтобы мы использовали в качестве t ie -точек при объединении двух фреймов данных. Надеюсь, я прочитал это хорошо. Я привязал ключ и QHR. Кричите, если не правильно. Вы получите помощь. Мои шаги; Приведите дату в datetime, извлеките минуты и преобразуйте их обратно в тип объекта
df4['qhrminute']=pd.to_datetime(df4['qhr']).dt.minute.astype('object')
df1['qhrminute']=pd.to_datetime(df1['qhr']).dt.minute.astype('object')
Выполните внешнее соединение для столбцов key и qhrminute. Внешнее объединение сохраняет все значения из всех атрибутов присоединяемых информационных фреймов по сравнению с внутренним, слева и т. Д. c
merged_df = df4.merge (df1, how = 'external', on = ['key', 'qhrminute' ], суффиксы = ('_A', '_B'))
Проверка и условие атрибута с помощью np.where
merged_df['Match']= np.where(merged_df['obs_A'] == merged_df['obs_B'], 'Y', 'N')
удаление необязательных столбцов
merged_df.drop(columns=['qhr_A','qhrminute'], inplace=True)
merged_df.rename({'qhr_B':'qhr'}, axis=1, inplace=True)
merged_df
Объединение строки в obs_A
и obs_B
, сортируйте их по алфавиту и удаляйте дубликаты в объединенном отсортированном столбце и qhr.
merged_df["com"] = merged_df["obs_A"] + merged_df["obs_B"]
merged_df['com1'] = merged_df['com'].apply(lambda x: ' '.join(sorted(x.split()))).sort_values( ascending=True)
merged_df.drop_duplicates(['qhr','com1'],keep= 'last')