본문 바로가기

EDA/seaboarn

데이터 시각화 연습 문제 ) 삼성전자 매출액 데이터를 시각화 해보자!

데이터 출처와 설명

데이터는 Dart에 올라온 2023 삼성전자 사업보고서에서 크롤링을 통해 받아왔습니다.

주요 제품 및 서비스.csv
0.00MB

 


삼성전자는 사업을 크게 4가지 부문으로 나누어 하고 있습니다.
해당 데이터는 기타까지 포함하여 총 5가지 부문에서 가각의 매출액과 비중 데이터를 가지고 있습니다.
세모( )는 마이너스를 의미합니다.


문제 설명

1 전처리 : 매출액은 int형으로 비중은 float형으로 저장해주세요.
2 시각화 세팅 : 그래프에 한국어가 보일 수 있도록 세팅하는 코드를 작성해주세요.
3 매출액 시각화 : x축은 각 부문을 나타내고 y축은 각 부문별 매출액을 나타내는 막대그래프를 그려주세요. 이때 각 막대의 색상은 달리하며 막대 위에는 수치를 적어주세요.
4 비중 시각화 : 각 부문별 비중을 나타내는 파이 그래프를 그려주세요. 이때 각 파이에 수치를 적어주세요.  

정답을 보기전에 해당 문제들을 풀어보세요!!


문제 해설

1. 전처리

import pandas as pd
import re

raw_df = pd.read_csv("주요 제품 및 서비스.csv")

# 전처리 함수
def preprocessing(sample):
	sample["매출액"] = int(re.sub("△", "-", re.sub(",", "", sample["매출액"])))
	sample["비중"] = float(re.sub("△", "-", re.sub("%", "", sample["비중"])))
    
	return sample
    
df = raw_df.apply(preprocessing, axis=1)

 

Note

정규표현식 : re
df.apply() 함수를 통한 순회

2. 시각화 세팅

import matplotlib.pyplot as plt
import matplotlib.font_manager as fm

# 어떤 폰트가 있는지 확인하기
font_list = [font.name for font in fm.fontManager.ttflist]

for font in font_list:
	print(font) 

# 원하는 폰트 설정
plt.rcParms['font.family'] = "원하는 폰트 이름"

 

Note

한국어 폰트 설정

plt.rcParms['font.family'] = 'font_name'

3. 매출액 시각화 하기

import seaborn as sns

keys = df.keys()

x = df[keys[0]]
y = df[keys[2]]

# 막대그래프 그리기
sns.barplot(df, x, y, palette="Set2")

# 글자 적기
for idx, val in enumerate(y):
	plt.text(idx, val, str(val), ha='center', va='bottom')

plt.show()


plt.text('x좌표', 'y좌표', '표시할 텍스트', ha='좌우 정렬', va='상하 정렬')



4. 매출액 비중 시각화 하기

keys = df.keys()
y = df[keys[3]]
labels = df[keys[0]]

plt.pie(y, labels=labels, autopct=".1f%%")
plt.show()


Note

plt.pie("데이터 값", "라벨", autopct="수치 표현식")