Вы можете использовать df.iterrows()
для итераций по строкам второго кадра данных и использовать df.at[]
для установки значений, где вам нужно.
df = pd.DataFrame([[0,0,0], [0,0,0], [0,0,0], [0,0,0]], columns=['201901', '201902', '201903'])
df.index=['a', 'b','c', 'd']
print(df)
# 201901 201902 201903
# a 0 0 0
# b 0 0 0
# c 0 0 0
# d 0 0 0
dfb = pd.DataFrame(['201902', '201901'], columns=['month'])
dfb.index = ['a', 'b']
print(dfb)
# month
# a 201902
# b 201901
for i, row in dfb.iterrows():
df.at[i, row] = 1
print(df)
# 201901 201902 201903
# a 0 1 0
# b 1 0 0
# c 0 0 0
# d 0 0 0