import pandas as pd
game_log = pd.read_csv("data/kim_jaeyoon_game_log.csv")
summary = (
game_log
.assign(month=lambda d: pd.to_datetime(d["date"]).dt.month)
.groupby(["season", "month", "home_away"])
.agg(
games=("date", "count"),
ip=("outs", lambda s: s.sum() / 3),
runs=("er", "sum"),
saves=("sv", "sum"),
blown_saves=("bs", "sum"),
strikeouts=("so", "sum"),
walks=("bb", "sum"),
hits=("h", "sum"),
)
)
summary["era"] = summary["runs"] * 9 / summary["ip"]
summary["k_bb"] = summary["strikeouts"] / summary["walks"].replace(0, pd.NA)
summary.sort_index()김재윤 변화 노트
2025년의 전반기 흔들림과 2026년 초반의 재정렬
2026년 6월 말 기준으로 김재윤을 읽을 때 중요한 점은 단순한 “부진/반등” 구도가 아니라, 2025년 안에서 이미 한 번 크게 무너졌다가 회복했고, 2026년에는 세이브 페이스와 실점 품질이 함께 움직이지 않는 구간이 생겼다는 것이다.
이 글은 Quarto로 작성한 분석글 예시다. 실제 리포트에서는 KBO 기록실, Statiz, 구단 트래킹 데이터 등을 붙여 다시 계산해야 한다. 여기서는 공개 기사에 나온 수치를 기준점으로 삼고, 읽는 방법을 먼저 잡는다.
Question 김재윤의 변화는 나이/구위 저하보다 커맨드와 상황 노출의 문제로 읽는 편이 맞을까?
Data 2025 전체 성적, 2025 전후반기 분리, 2026년 5-6월 공개 기사 기준 수치.
Output 결론보다 “다음에 실제 데이터를 붙였을 때 확인할 체크리스트”를 남긴다.
기록의 큰 윤곽
| 구간 | 공개 기사 기준 수치 | 읽을 포인트 |
|---|---|---|
| 2025 시즌 전체 | 63경기, 57.2이닝, 4승 7패, 13세이브, 3홀드, ERA 4.99 | 시즌 전체 평균만 보면 불안정한 마무리처럼 보인다. |
| 2025 전반기 | 37경기, ERA 6.75, 피안타율 .278 | 장타/연속 출루를 허용하며 경기 후반 리스크가 커진 구간. |
| 2025 후반기 | 19경기, ERA 0.92, 피안타율 .145 | 같은 시즌 안에서도 완전히 다른 투수처럼 회복했다. |
| 2026.05.08 | 통산 200세이브 달성 | 역할 자체는 여전히 클로저에 가깝게 유지됐다. |
| 2026.06.15 | 28경기, 2승 4패, 15세이브, ERA 5.87 | 세이브 수는 쌓였지만 실점 안정성은 같이 따라오지 않았다. |
| 2026.06.21 | 통산 210세이브, 홈 ERA 5.87 / 원정 ERA 0.00 기사 언급 | 구장/상황 분리가 필요한 신호가 남아 있다. |
2025년은 한 시즌 안의 두 얼굴이다
2025년 전체 ERA 4.99만 보면 “노쇠화가 시작됐다”는 식으로 너무 쉽게 결론이 난다. 그런데 전반기와 후반기를 나눠 보면 이야기가 다르다. 전반기 ERA 6.75, 피안타율 .278에서 후반기 ERA 0.92, 피안타율 .145로 내려갔다면, 시즌 내부에서 이미 조정이 일어났다고 보는 편이 자연스럽다.
그 조정이 구속 회복인지, 릴리스 포인트 안정인지, 변화구 비중 변화인지, 혹은 단순히 피홈런/잔루율의 회귀인지는 원자료가 필요하다. 다만 공개 숫자만으로도 “2025년 전체 평균”은 선수의 현재 상태를 과하게 흐릴 수 있다.
2025 전반
ERA 6.75
2025 후반
ERA 0.92
2026년은 결과와 과정이 엇갈린다
2026년 5월에는 통산 200세이브를 찍었다. 이것만 보면 클로저로서의 지위와 누적 성과는 여전히 강하다. 하지만 6월 중순 기사 기준으로는 28경기 15세이브와 ERA 5.87이 함께 놓인다. 세이브는 쌓이는데 평균자책점이 높은 타입은 다음 질문을 만든다.
- 실점이 특정 경기 몇 개에 몰렸는가?
- 주자 있는 상황에서 등판한 비율이 늘었는가?
- 홈/원정, 특정 구장, 특정 상대 라인업에서만 맞았는가?
- 헛스윙과 존 안 컨택 허용률 중 어느 쪽이 먼저 흔들렸는가?
여기서 특히 흥미로운 것은 6월 21일 기사에 나온 홈/원정 분리다. 홈 ERA 5.87, 원정 ERA 0.00이라는 식의 극단적인 차이는 표본이 작을 수 있지만, 단순한 시즌 평균보다 훨씬 좋은 분석 출발점이 된다.
Quarto로 붙이면 좋은 코드 구조
실제 데이터가 CSV로 정리되면 아래처럼 시즌, 월, 홈/원정, 등판 상황별로 바로 다시 계산할 수 있다. 이 문서에서는 코드 실행은 꺼두었지만, Quarto를 설치한 환경에서는 execute.eval: true로 바꿔 표와 그래프를 문서 안에서 같이 렌더링하면 된다.
임시 결론
김재윤의 2025-2026 변화는 “끝났다/돌아왔다” 중 하나로 자르기보다, 2025 후반기의 회복 신호가 2026년에도 유지되는지 검증하는 문제로 두는 게 좋다. 2026년에 세이브가 빠르게 쌓였다는 사실은 역할 신뢰를 보여주지만, ERA와 특정 구간 실점이 따라온다면 클로저 안정성은 별도로 점검해야 한다.
다음 버전에서는 경기별 로그를 붙여서 세 가지를 확인하면 된다.
- 전반기/후반기 분리가 2026년에도 반복되는지
- 홈/원정 차이가 실제 구장 효과인지, 표본 잡음인지
- 세이브 상황과 동점/비세이브 상황에서 투구 내용이 갈리는지