Python 15

[python] 브루잉일지 02. 한 잔을 내리기 전: 전처리와 변수 만들기

missing_count = df.isnull().sum()missing_percent = (missing_count / len(df)) * 100missing_summary = pd.DataFrame({ '결측치 개수': missing_count, '결측치 비율(%)': missing_percent})missing_summary = missing_summary[missing_summary['결측치 개수'] > 0].sort_values( '결측치 비율(%)', ascending=False)print(missing_summary) 3개의 데이터셋애 대해 각각 결측치를 확인했다. 모든 컬럼을 처리하지는 않고, 실제로 분석에 쓸 컬럼에 대해서만 의미 있게 채우거나 버리기로 했다. 결측치 ..

☕️ coffee lab 2026.08.02

[python] 탐사일지 04. 침몰의 법칙을 추적하다: 가설 검증

가설 검증하기타이타닉 데이터를 가지고 총 7개의 가설을 세운 뒤 하나씩 통계적으로 검증해 보는 글입니다. 이 글에서는 두 가지 검정을 반복해서 사용해요. 카이제곱 검정(chi2_contingency): 성별, 등급처럼 범주형 변수 두 개 사이에 관계가 있는지를 볼 때 사용t-검정(ttest_ind): 나이, 요금처럼 연속형 변수의 평균을 두 그룹 사이에서 비교할 때 사용검정 원리는 처음 등장하는 가설(H1)에서 한 번만 자세히 설명하고 이후 같은 검정이 재등장하는 가설에서는 결과 해석 위주로 가볍게 다룹니다. H1: 여성이 남성보다 생존율이 높을 것이다.'타이타닉'하면 가장 먼저 떠오르는 게 "여성과 아이 먼저"라는 구호죠. 실제로 데이터에서도 그랬을지 확인해 볼게요.# H1: 여성이 남성보다 생존..

🚢 titanic 2026.07.16

[python] 탐사일지 01. 닻을 내리기 전에: 질문부터 던지고 데이터 첫인상 파악하기

질문부터튜토리얼에서는 'matplotlib으로 그래프를 그려보자!'처럼 도구가 먼저 정해지고 그 다음 어떤 컬럼에 적용해볼지 골랐습니다. 실제로는 순서가 좀 달라요. 먼저 답해야 할 질문이 존재하고, 그 질문에 가장 빠르고 정확하게 답해주는 도구를 그때그때 골라서 사용합니다.항해일지(튜토리얼): 라이브러리 정하기 → 사용법 익히기 → 일단 그려보기 탐사일지(분석시도): 질문 정의 → 데이터로 검증 → 필요하 경우 시각화 탐사일지에서는 하나의 질문을 합니다. (사실 하나인데 물음표는 3개입니다.) 타이타닉 침몰에서 생존을 가른 요인은 무엇이었는가? 흔히 알려진 '여성과 아이 먼저(Women and Children First)'라는 통념은 모든 승객에게 동일하게 적용되었는가? 아니면 계급에 따라 다르게 작동..

🚢 titanic 2026.06.29

[python] 항해일지 06. 망원경으로 들여다보기: plotly

plotly는 마우스 호버, 확대/축소, 범례 클릭으로 항목 숨기기 등 인터랙티브 기능을 제공하는 라이브러리입니다. 첨부하는 이미지들은 전부 정적 캡처이지만, 실제로 주피터 노트북이나 Streamlit 등에서 실행하면 마우스를 올렸을 때 값이 표시되고, 범례를 클릭하면 범례 항목을 켜고 끌 수 있습니다. plotly 그래프를 이미지로 저장하기(venv) pip install kaleido(venv) pip freeze > requirements.txtPlotly 그래프를 PNG 이미지로 저장하려면 `kaleido` 라이브러리가 필요합니다. 이번 글에서는 블로그에 정적 이미지를 첨부하기 위해 사용했지만, Plotly 그래프도 일반 이미지처럼 저장할 수 있다는 점을 함께 소개하고 싶어 추가했습니다. 다만..

🚢 titanic 2026.06.28

[python] 항해일지 07. 함교에 올라 조종하기: streamlit

벌써 항해일지의 마지막이네요. 마지막 시간에 시도해볼 건 streamlit 라이브러리입니다. 지금까지 만든 분석을 누구나 브라우저에서 클릭하며 탐색할 수 있는 웹앱으로 만들 수 잇는 것이 streamlit의 가장 큰 장점입니다. 파이썬 코드만으로 버튼, 슬라이더, 그래프가 있는 대시보드를 만듭니다. 오늘 만들 대시보드는 이런 흐름으로 완성됩니다. 먼저 페이지 제목을 화면 상단에 올리고, 왼쪽 사이드바에 성별, 객실 등급 필터를 달아요. 사용자가 필터를 조작하면 그 조건에 맞게 전체 인원, 생존자 수, 생존율 카드가 실시간으로 바뀌고, 아래로 내려가면 객실 등급별 생존율 막대 그래프와 나이/요금의 상관관계를 보여주는 인터랙티브 산점도가 차례로 그려집니다. 원하면 체크박스를 눌러 필터링된 원본 데이터도 표..

🚢 titanic 2026.06.28

[python] 항해일지 05. 더 선명하게 항해도 그리기: seaborn

matplotlib를 어느 정도 익혔다면 이제 seaborn을 배울 차례입니다. seaborn은 matplotlib를 기반으로 하지만 통계적 시각화를 훨씬 적은 코드로 만들 수 있게 해 줍니다. 특히 그룹별 비교, 분포 비교에 강력하죠. 이번 글에서는 타이타닉 데이터를 활용해 seaborn의 주요 그래프를 살펴보고 마지막에는 matplotlib로 같은 그래프를 그릴 때 얼마나 코드가 길어지는지도 비교해 보겠습니다. 라이브러리 불러오기import pandas as pdimport matplotlib.pyplot as pltimport seaborn as snsfrom utils.theme import set_plot_theme, get_palettefrom utils.font import set_kor..

🚢 titanic 2026.06.27

[python] 항해일지 04. 갑판 위 풍경 스케치: matplotlib

이제 드디어 시각화를 해보겠네요. 먼저 matplotlib에 대해서 좀 더 이야기를 해봐야 할 것 같아요. matplotlib는 파이썬 시각화의 기본이 되는 라이브러리입니다. 세밀한 커스터마이징이 가능하긴 하지만 코드가 다소 길어질 수 있어요. 타이타닉 데이터를 가지고 막대그래프, 파이 차트, 히스토그램, 산점도, 선 그래프 5가지 방식으로 그려볼까 해요. 그런데 그 전에 matplotlib 라이브러리를 통해서 그릴 수 있는 그래프에 대해서 먼저 알아봐야겠어요. 그릴 수 있는 게 정말 정말 정말 많거든요. 리스트를 적어보자면, `bar`, `pie`, `hist`, `scatter`, `plot`, `boxplot`, `violinplot`, `heatmap`, `barh`, `stackplot`, `e..

🚢 titanic 2026.06.26

[python] 항해일지 03. 선실 정리함 채우기: utils와 ModuleNotFoundError

필수 사항은 아닌 선택 사항이지만 프로젝트를 하면서 코드의 질을 높이기 위해서, 모두의 편-안함을 위해서 해야할 것들에 대해서 작성해볼까 합니다. 타이타닉 데이터 분석을 할 때, `matplotlib` 관련 유틸 함수들을 `utils` 폴더에 모아두고 여러 파일에서 재사용하려고 했습니다. 그런데 막상 `import` 하려니 고려할 것들도 많고 그래서 정리를 한 번 해볼까 해요.`matplotlib`로 돌아와야 했지만 `matplotlib`에 이 내용을 녹이기에는 쉽지 않을 것 같아서 이렇게 새로운 글로 찾아왔습니다. 유틸함수란?본격적으로 시작하기 전에 유틸함수에 대해서 알아보고 갈게요. 유틸 함수(Utility Function)는 여러 곳에서 반복적으로 쓰이는 공통 기능을 모아둔 함수입니다. 그래프를 ..

🚢 titanic 2026.06.25

[python] 항해일지 02. 승객 명단 펼쳐보기: pandas

본격적으로 시작하기 전에 왜 `pandas`를 쓰는지부터 이야기를 해보도록 할게요.데이터는 보통 엑셀처럼 행과 열로 이루어진 표 형태로 존재해요. `pandas`는 이런 표 형태의 데이터를 파이썬으로 다루기 위한 도구입니다. `pandas`의 핵심 자료구조는 DataFrame인데 엑셀 시트 하나라고 생각하면 됩니다. 행과 열에 이름이 붙어있고, 각 열마다 데이터 타입이 다를 수 있어요. 타이타닉 데이터로 보자면, `survived`는 0과 1로 이루어져 있지만, `class`를 보면 First, Second, Third로 이루어져 있어요. 그렇다면 `numpy`와는 어떤 게 다를까요? `numpy`는 숫자 계산에 특화된 배열이고, `pandas`는 이름 있는 열, 결측치 처리, 그룹별 통계 같은 실제 ..

🚢 titanic 2026.06.24

[python] 항해일지 01. 엔진룸 구경하기: numpy

데이터 가져오기kaggle에서 타이타닉과 관련된 데이터를 가져왔습니다. 다운로드한 csv 파일을 `data` 폴더에 넣어주세요. 이름은 원하는 형태로 해도 좋지만 저는 `titanic`으로 하겠습니다. 라이브러리 불러오기 & 데이터 numpy 배열로 변환# [1] 라이브러리 불러오기import pandas as pdimport numpy as npdf = pd.read_csv("data/titanic.csv")# [2] 데이터를 numpy 배열로 변환age = df["age"].dropna().to_numpy()fare = df["fare"].to_numpy()survived = df["survived"].to_numpy()print(f"age[{type(age)}]: {age[:5]}")# age..

🚢 titanic 2026.06.23