df = df.stack()
df_result = pd.DataFrame(OrderedDict({'year': df.index.get_level_values(1),
    'value': df['value'].astype(int).values}))
как собрать столбец DataFrame в пары ключ-значение как строку в python