One solution with apply() which runs a given function on each row:
df = df.replace("Unk", np.nan)
df["A1"] = df.apply(lambda row: round(row["A"] / dic["A_" + str(row.name)[:4]], 3) , axis=1)
df["B1"] = df.apply(lambda row: round(row["B"] / dic["B_" + str(row.name)[:4]], 3) , axis=1)
display(df)
PS: row is a series and row.name is actually the index of the dataframe so the date.