pbj0812의 코딩 일기

[Python] seaborn 을 이용한 heatmap 제작( + 다중 groupby) 본문

ComputerLanguage_Program/PYTHON

[Python] seaborn 을 이용한 heatmap 제작( + 다중 groupby)

pbj0812 2021. 2. 14. 22:32

0. 목표

 - seaborn 을 이용한 heatmap 그리기

1. 이중 group by 확인 예제

 1) library 호출

import pandas as pd

 2) 데이터 생성

df = pd.DataFrame({'a' : [1, 2, 3, 4, 1],
                   'b' : [1, 1, 1, 1, 1],
                   'c' : [2, 3, 5, 10, 11]})

 3) 이중 group by 를 통한 숫자 세기

df.groupby(by=['a', 'b'], as_index=False).count()

2. seaborn 을 통한 heatmap 제작

 1) library 호출

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns

 2) 더미 데이터 생성

a = []
b = []
c = []

for i in range(1000):
    a.append(np.random.randint(21))
    b.append(np.random.randint(21))
    c.append(np.random.randint(21))

 3) 데이터 프레임 생성

data = pd.DataFrame({'CNT1' : a, 'CNT2' : b, 'CNT3' : c})

data.head()

 4) group by

summary = data.groupby(by = ['CNT1', 'CNT2'], as_index = False).count()

 5) 피벗

pivot = summary.pivot('CNT1', 'CNT2', 'CNT3')

 6) heatmap 생성

fig = plt.figure()
fig.set_size_inches(15, 15)
sns.heatmap(pivot, annot=True)
plt.title('heat map', fontsize=20)

3. 참고

 - [Python][Pandas] Group By (집계) 기초

 - [Python] 히트맵 그리기 (Heatmap by python matplotlib, seaborn, pandas)

 - randint 설명

Comments