teams_small.head()

위 데이터프레임에서 'team' 컬럼을 제외한 나머지 컬럼들 사이의 상관관계를 분석하려고 한다.
# 상관관계를 분석할 데이터
teams_small.iloc[:, 1:]
teams_small.iloc[:, 1:].corr()

ax = sns.heatmap(data = teams_small.iloc[:, 1:].corr(),
cmap = 'coolwarm',
vmin = -1, vmax = 1,
annot = True)

import numpy as np
mask = np.triu(데이터프레임)
# 결과
array([[1., 1., 1., 1., 1., 1., 1.],
[0., 1., 1., 1., 1., 1., 1.],
[0., 0., 1., 1., 1., 1., 1.],
[0., 0., 0., 1., 1., 1., 1.],
[0., 0., 0., 0., 1., 1., 1.],
[0., 0., 0., 0., 0., 1., 1.],
[0., 0., 0., 0., 0., 0., 1.]])
위 마스크로 히트맵을 그리면 상관관계가 1인 대각선 부분도 출력에서 제외된다.

상관관계가 1인 대각선 부분도 남기고 싶다면 아래 for문을 추가하면 된다.
# 대각선은 남기기
for i in range(len(mask[0])):
mask[i][i] = 0
mask
for문으로 mask를 순회하면서 대각선의 1 값을 다시 0으로 바꿔 히트맵에 출력되도록 한다.
ax = sns.heatmap(data = teams_small.iloc[:, 1:].corr(),
cmap = 'coolwarm',
vmin = -1, vmax = 1,
mask = mask,
annot = True)
plt.title('Correlation between index', size = 18)
ax.set_xticklabels(ax.get_xticklabels(), rotation = 45, ha = 'right')
plt.show()
