IIUC,还有一种方法:
df = df.mul((lower_df.values < df.values) & ( df.values < upper_df.values).astype(int))
输出:
A B C D 06/09/2019 56 0 33 0 06/10/2019 54 66 47 23 06/11/2019 0 0 43 19 06/12/2019 21 38 0 0