Я думаю, что более подходящим вариантом здесь будет преобразование вашего диктанта в серию и вызов update
:
df['Start date'].update(pd.Series(dct))
df
Start date End Date
0 1969 a
1 1971 2
2 76 NaN
replace
не будет работать, потому что для этого требуется, чтобы словарь содержал {:}, но вместо этого вы указали индексы. Итак, в двух словах, чтобы replace
работал, вам нужно было бы сделать
dct2 = {df.at[i, 'Start date']: v for i, v in dct.items()}
df.replace({'Start date': dct2})
Start date End Date
0 1969 a
1 1971 2
2 76 NaN