Краткий ответ
При повороте вы должны указать 3 параметра. См. pandas.DataFrame.pivot
DataFrame.pivot(index=None, columns=None, values=None)[source]
или в вашем случае
piv = df.pivot(index='Type of Breach',
columns='Breach Submission Year',
values='Individuals Affected'
)
Пример
import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
sns.set()
df = pd.DataFrame({
'Breach Submission Year': ['2018', '2018', '2018', '2019', '2019', '2019'],
'Type of Breach': ['A', 'B', 'C', 'A', 'B', 'C'],
'Individuals Affected': [1, 2, 6, 2, 5, 6]
})
piv = df.pivot('Type of Breach', 'Breach Submission Year',
'Individuals Affected')
piv = df.pivot(index='Type of Breach',
columns='Breach Submission Year',
values='Individuals Affected'
)
sns.heatmap(
annot=True,
cmap="YlGnBu",
cbar_kws={'label': 'Individuals Affected'},
data=piv
).set_title('Cause of Data Breach by Year')
plt.show()