본문 바로가기

⛴️ Data Analyst

[기초 프로젝트 | Day 3] 시각화

1. 시각화

프로젝트하면서 피봇 테이블과 시각화 차트 구현 부분을 많이 맡았다. 

Pandas와 Matplotlib, Seaborn을 활용해 피봇 테이블로 컬럼 간의 관계를 확인하고, 이를 시각화하여 표현하고 있다. 

 

1) 컬럼의 순서 바꾸는 법

# ['pod_lis_frequency']내 unique값 원하는 순서대로 정렬한 리스트 생성
my_order =['Daily', 'Several times a week', 'Once a week', 'Rarely', 'Never']

# pd.Categorical 함수를 활용해 spotify['pod_lis_frequency']를 정렬된 범주화 데이터로 변환
spotify['pod_lis_frequency']=pd.Categorical(spotify['pod_lis_frequency'], categories=my_order, ordered=True)

 

① 카테고리 순서 정의

: 범주형 데이터인 spotify.['pod_lis_frequency']의 각 범주의 순서를 my_order 리스트로 지정한다.

 

② 데이터프레임의 컬럼을 범주형 데이터로 변환

pd.Categorical 함수를 활용해 'pod_lis_frequency' 데이터를 my_order로 정한 순서대로 정렬된 범주형 데이터로 변환한다. 

ordered=True 매개변수는 이 범주가 순서가 있는 것임을 나타낸다. 

 

spotify['pod_lis_frequency'] 컬럼을 조회해보니 맨 마지막 Categories에

['Daily' < 'Several times a week' < 'Once a week' < 'Rarely' < 'Never'] 처럼 부등호로 값이 표시되어 있었다.

Categorical 함수가 값들에 중요도나 크기도 부여하는지 궁금해서 챗GPT한테 물어봤다.

 

범주형 데이터의 정해진 순서를 나타낼 뿐 크기나 중요도를 비교할 수는 없다는 답을 얻었다. 

 

챗GPT가 이렇게 쓸모있다고 느껴진 건 살면서 처음...

지금 거의 내 과외선생님이다,,

 

2) 차트 색깔 바꾸기

defector_pod_percentage.plot(kind='barh', color=['lightgreen', 'mediumseagreen'], figsize=(10, 6))

 

① Matplotlib: color=['lightgreen', 'mediumseagreen']

: 그냥 color 인자를 넣어서 원하는 색을 지정하면 되는 거였다니..

저걸 몰라서 매번 seaborn으로 데이터 끌고 와서 pallette 인자로 해결했었다...

 

# Seaborn의 barplot을 사용하여 초록 계열의 막대 그래프 생성
sns.barplot(data=defector_pod, palette='Greens_r', ci=None)

# 그래프 꾸미기
plt.title('Podcast Listening Frequency by Defector')
plt.xlabel('Defector')
plt.ylabel('Frequency')
plt.legend(title='Defector', labels=['Not Defector', 'Defector'])

# 그래프 표시
plt.show()

 

② Seaborn: palette='Greens_r'

pd.Categorical 함수를 활용해 'pod_lis_frequency' 데이터를 my_order로 정한 순서대로 정렬된 범주형 데이터로 변환한다. 

ordered=True 매개변수는 이 범주가 순서가 있는 것임을 나타낸다. 

표준 편차를 나타내는 검정 선을 없애고 싶다면 'ci=None' 인자를 추가해주면 된다. 

 

 

이제 외울 때도 됐는데... 안외워진다 증말...