1-1. 범주형 데이터 비교 시각화 하기 위해 교차표 만들기
df_ct = pd.crosstab(df['F3'], df['F1'])
out :
1-2. 범주형1을 기점으로 범주형2의 데이터별 값을 구분하기 위해 stack함수 사용
# stack()함수만 사용시 시리즈 타입으로 출력된다. # reset_index()함수를 사용해서 데이터 프레임 타입으로 출력하고, # 값을 나타내는 컬럼이 0으로 출력되는데 value로 바꿔준다. df_stacked = df_ct.stack().reset_index().rename(columns={0:'value'})
out:
1-3. 시각화
# 그래프 배열 및 사이징 fig, ax = plt.subplots(1, 5) # subplots()로 동시에 여러 그래프를 띄운다. fig.set_size_inches(30, 5) # 그래프 사이즈를 정한다. # 그래프 제목 ax[0].set(title="F1 by F3") ax[1].set(title="F2 by F3") ax[2].set(title="F6 by F3") ax[3].set(title="F8 by F3") ax[4].set(title="F9 by F3") # 그래프 표시 sns.barplot(x=stacked.F3, y=stacked.value, hue=stacked.F1, ax=ax[0]); # x= x축에 기준으로 띄울 것, y= 수치로 띄울 값, hue= 구분지어서 볼것 # ax = 띄울 위치를 정해준다고 볼 수 있다. # 나머지 출력에 대한 것은 생략...
out:
fig, ax = plt.subplots(1, 3) # 동시에 띄울 그래프 갯수 fig.set_size_inches(20, 5) # 그래프 사이즈 # 그래프 제목 ax[0].set(title="F4 by F3") ax[1].set(title="F5 by F3") ax[2].set(title="F7 by F3") # 그래프 표시 sns.barplot(data=df, x='F3', y='F4', ax=ax[0]); # 나머지 그래프도 동일한 방법으로 사용함으로 생략...
out :