728x90
반응형
이것은 지각의 수준을 넘어선..
공부..
그러나 어느때보다 재미있는중..

Chapter 07. (07-3) 시가총액 데이터 시각화하기
시가총액 데이터 지표화
from pathlib import Path
import pandas as pd
from step_1_1 import OUT_DIR # 모듈 불러오기
from step_2_2 import OUT_2_2
OUT_3_1 = OUT_DIR / f"{Path(__file__).stem}.csv"
def top_kospi_company(df_raw: pd.DataFrame, prop: float) -> pd.DataFrame:
df_raw["시가총액"] = df_raw["시가총액"].str.replace(",", "").astype(int)
df_raw["조단위"] = df_raw["시가총액"] / 10_000 # 억단위를 조단위로 변경
df_raw = df_raw.sort_values("시가총액", ascending=False) # 내림차순 정렬
df_raw["누적비율"] = df_raw["시가총액"].cumsum() / df_raw["시가총액"].sum()
df_sliced = df_raw.loc[df_raw["누적비율"] <= prop] # 데이터프레임 슬라이싱
return df_sliced.filter(["종목명", "시가총액", "조단위", "누적비율"]) # 열 필터링
if __name__ == "__main__":
df_raw = pd.read_csv(OUT_2_2)
df_top = top_kospi_company(df_raw, 0.5) # 시가총액 기준 상위 50% 종목 추출
df_top.to_csv(OUT_3_1, index=False) # CSV 파일로 저장

시가총액 데이터 시각화
ModuleNotFoundError: No module named 'plotly'
오류가 나는 경우 plotly 부터 설치 필요 합니다.
pip install -U playwright kaleido nbformat pandas plotly
from pathlib import Path
import pandas as pd
import plotly.express as px
from step_1_1 import OUT_DIR # 이전 모듈 불러오기
from step_3_1 import OUT_3_1
df_raw = pd.read_csv(OUT_3_1)
fig = px.treemap(
df_raw, # 기준 데이터
path=["종목명"], # '종목명' 기준으로 데이터 분류
values="조단위", # '조단위' 기준으로 종목별 면전 계산
)
fig.update_traces(
marker=dict(
cornerradius=5, # 모서리 둥글게
colorscale="Plasma", # 색상
pad=dict(t=10, r=10, b=10, l=10), # 트리맵 여백 지정
),
texttemplate="<b>%{label}</b><br>%{value:,.0f}조원", # 종목명, 시가총액 표시
textfont_size=30, # 폰트 크기
)
fig.update_layout(margin=dict(t=0, r=0, b=0, l=0)) # 이미지 여백 지정
img_path = OUT_DIR / f"{Path(__file__).stem}.png" # 이미지 경로
fig.write_image(img_path, width=1600, height=900, scale=2) # 이미지 파일로 저장

반응형
'Programming > Python' 카테고리의 다른 글
| [혼만파] 3주차_혼자 만들면서 공부하는 파이썬 (2) | 2025.07.18 |
|---|---|
| [혼만파] 2주차_혼자 만들면서 공부하는 파이썬 (1) | 2025.07.18 |
| [혼만파] 1주차_혼자 만들면서 공부하는 파이썬 (1) | 2025.07.18 |
| [Python] 파이썬 설치하기 (0) | 2017.04.03 |
| [Python] 파이썬이란 (0) | 2017.03.24 |
댓글