Я попытался воспроизвести ваш пример здесь, я думаю, что добавление статических столбцов в индекс решит вашу проблему
df = pd.DataFrame({"id":[1,2], "FieldTitle":["fname", "lname"], "Value":["aaa", "bbb"], "number":[12,12]})
pivoted_df = pd.pivot_table(df, index=["number"], columns='FieldTitle', values=['Value'], aggfunc='first').reset_index()
Возможно, вам придется переименовать столбцы, так как у вас будет несколькоindex.
В качестве альтернативы рассмотрите возможность поворота, удаления дублирующихся столбцов из исходного набора данных и последующего слияния вместе с результатом