df['result'] = 0
df.loc[df.groupby(df['dates'].dt.date).apply(lambda x: (x['num_2'] > x[
    'num_1']).idxmax()), 'result'] = 1
df
Pandas daily groupby с условием, основанным на первом более высоком значении