Если вы хотите заменить их нулями, вы можете использовать between
и сделать это
top = depth_3.max()
bottom = depth_1.min()
df1[~df1.depth.between(bottom, top)] = 0
df3[~df3.depth.between(bottom, top)] = 0
Редактировать: как указано в вашем комментарии, если вы не хотите перезаписывать глубину, которую вы можете использовать
top = depth_3.max()
bottom = depth_1.min()
df1_cols = df1.columns.difference(["depth"])
df1.loc[~df1.depth.between(bottom, top), df1_cols] = 0