데이터 출처와 설명
데이터는 Dart에 올라온 2023 삼성전자 사업보고서에서 크롤링을 통해 받아왔습니다.
삼성전자는 사업을 크게 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="수치 표현식")
'EDA > seaboarn' 카테고리의 다른 글
Seaborn 사용법 과 그래프 정리 : 예제와 함께 알아보자 (0) | 2024.05.01 |
---|