Не уверен, где ваша проблема, так как вы не предоставляете подробную информацию о том, как вы строите свои DataFrames.В любом случае вам не обязательно использовать DataFrames для этого: NumPy, безусловно, способен делать то, что вам нужно.Вот пример кода, который вы можете использовать:
import numpy as np
# Randomly create the initial arrays, just to prove the code is OK
df1 = np.random.choice([0.0, 0.05], size=(17520,1000))
df2 = np.random.choice([0.0, 0.05], size=(17520,1000))
# Modify them
w1 = np.where(df1 == 0.05)
w2 = np.where(df2 == 0.05)
df1[w1] = np.random.choice([0.0, 0.05], size=len(w1[0]))
df2[w2] = np.random.choice([0.0, 0.05], size=len(w2[0]))
df_new = df1 - df2