используйте маску и добавьте текст для маскированной зоны, используя цикл.
mask = np.zeros((3, 4))
mask[:,3] = True
ax = sns.heatmap(df, mask=mask, annot=True,
vmin=df.values[:,:3].ravel().min(),
vmax=df.values[:,:3].ravel().max(),
annot_kws={"size": 20, "color":"g"})
for (j,i), label in np.ndenumerate(df.values):
if i == 3:
ax.text(i+0.5, j+0.5, label,
fontdict=dict(ha='center', va='center',
color='g', fontsize=20))
![enter image description here](https://i.stack.imgur.com/Fy5K5.jpg)
Альтернативное предложение по замене цикла:
mask = np.zeros((3, 4))
mask[:,3] = True
sns.heatmap(df, mask=mask)
sns.heatmap(df, alpha=0, cbar=False, annot=True, annot_kws={"size": 20, "color":"g"})
приводит к тому же результату