import pandas as pd
import numpy as np
data = {'r': [1, *[np.NaN for _ in range(1, 12)]],
'd': [-4, -1, -2, -3, -1, -2, np.NaN, np.NaN, -3, -2, -1, -3]}
df = pd.DataFrame(data)
df.r[df.d.notnull()] = 2
print(df)
Результат
r d
0 2.0 -4.0
1 2.0 -1.0
2 2.0 -2.0
3 2.0 -3.0
4 2.0 -1.0
5 2.0 -2.0
6 NaN NaN
7 NaN NaN
8 2.0 -3.0
9 2.0 -2.0
10 2.0 -1.0
11 2.0 -3.0
Это то, что вы ищете? Ваш желаемый результат кажется странным.