Причина проста - в ваших данных отсутствует пара (индекс, столбец) значений, например:
df = pd.DataFrame({"Source": ["foo", "bar", "bar", "bar"],
"Customer Location": ["one", "one", "two", "two", ],
"Total billed £": [10, 20, 30, 40]})
print(df)
Настройка
Source Customer Location Total billed £
0 foo one 10
1 bar one 20
2 bar two 30
3 bar two 40
Как вы можете видеть, в ваших данных нет пары ('foo', 'two'), поэтому когда вы делаете:
result = pd.pivot_table(df, index='Source', columns='Customer Location', values='Total billed £')
print(result)
Вывод
Customer Location one two
Source
bar 20.0 35.0
foo 10.0 NaN
Для устранения проблемы укажите значение по умолчанию с помощью параметра fill_value:
result = pd.pivot_table(df, index='Source', columns='Customer Location', values='Total billed £', fill_value=0)
Выход
Customer Location one two
Source
bar 20 35
foo 10 0