Вот один из подходов к этому.
Убедитесь, что столбцы 'Опубликованные' имеют тип datetime
Comment['Published'] = pd.to_datetime(Comment['Published'])
Replies['Published'] = pd.to_datetime(Replies['Published'])
Объединить 2 кадра данных на соответствующие им ключи
df_new = (Comment[['MainID', 'Published']]
.merge(Replies[['ParentID', 'Published']],
left_on='MainID',
right_on='ParentID',
suffixes=('_comment', '_reply'))
.drop('ParentID', axis=1))
Добавить вычисленный Diff
столбец
df_new['Diff'] = (df_new['Published_reply'] - df_new['Published_comment']).dt.total_seconds()
Сортировка DataFrame по Diff
и удаление дубликатов. Это сохранит «первый» комментарий.
df_new = df_new.sort_values('Diff').drop_duplicates('MainID')
print(df_new)
MainID Published_comment Published_reply Diff
0 terssfd32 2018-06-25 23:00:00 2018-06-25 23:00:40 40.0
2 hetasfd2s 2018-06-25 23:10:00 2018-06-25 23:11:40 100.0
5 eeasdfr3d 2018-06-25 23:20:00 2018-06-25 23:22:08 128.0
Если вам требуется последний комментарий, добавьте аргумент ascending=False
к методу sort_values