Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 파이썬 크롤링
- 나이브베이즈
- sklearn
- NumPy
- KMeans Clustering
- control statement
- ML
- 파이썬 제어문
- Machine Learning
- 넘파이
- python control statement
- python
- 배열
- 머신러닝
- dataframe
- Titanic data set
- 타이타닉 데이터
- 순회 크롤러
- 파이썬 객체 지향 프로그래밍
- 파이썬
- pandas
- K평균군집화
- Python crawler
- 제어문
- 사이킷런
- 파이썬 크롤러
- scikit-learn
- 판다스
- Naive Bayes
- Data pre-processing
Archives
- Today
- Total
Try to 개발자 EthanJ의 성장 로그
Pandas Data analysis with Baseball player 판다스 야구 선수 데이터 분석 본문
CS & DS/Numpy & Pandas
Pandas Data analysis with Baseball player 판다스 야구 선수 데이터 분석
EthanJ 2022. 11. 12. 16:28
Pands Data analysis with Baseball player
판다스 야구 선수 데이터 분석
In [1]:
import pandas as pd
1. 데이터 적재 및 통합¶
In [2]:
bb_data = pd.read_excel('data/NC DINOS.xlsx', sheet_name=None)
bb_data
Out[2]:
{'2013': Unnamed: 0 선수명 팀명 경기 타석 타수 안타 홈런 득점 타점 볼넷 삼진 도루 BABIP \ 0 0 모창민 NC 108 436 395 109 12 57 51 37 68 16 0.307 1 1 이호준 NC 126 508 442 123 20 46 87 60 109 2 0.324 2 2 김종호 NC 128 546 465 129 0 72 22 57 100 50 0.352 3 3 나성범 NC 104 458 404 98 14 55 64 33 95 12 0.279 4 4 조영훈 NC 120 426 380 107 6 38 39 39 56 4 0.316 5 5 이현곤 NC 91 161 139 38 0 10 9 16 14 2 0.304 6 6 이상호 NC 102 138 125 31 0 26 13 9 21 24 0.298 7 7 강진성 NC 3 3 2 1 0 1 0 1 0 0 0.500 8 8 조평호 NC 26 86 79 21 2 12 7 6 24 1 0.358 9 9 박민우 NC 32 48 42 11 0 10 6 5 7 9 0.306 10 10 박정준 NC 77 195 167 41 4 24 21 23 44 4 0.303 11 11 이승호 NC 2 1 0 0 0 0 0 1 0 1 - 12 12 마낙길 NC 24 31 29 9 0 5 0 1 5 2 0.375 13 13 김성욱 NC 4 4 4 1 0 0 1 0 2 0 0.500 14 14 강구성 NC 2 2 2 0 0 0 0 0 0 0 0.000 15 15 지석훈 NC 104 356 309 68 3 25 35 30 82 2 0.285 16 16 김종찬 NC 5 7 7 1 0 0 0 0 3 0 0.250 17 17 차화준 NC 58 121 106 24 1 18 7 12 29 4 0.295 18 18 김동건 NC 7 17 16 2 1 1 1 1 7 0 0.125 19 19 이창섭 NC 5 5 5 0 0 0 0 0 2 0 0.000 타율 출루율 장타율 OPS wOBA WAR 0 0.276 0.339 0.443 0.782 0.353 2.31 1 0.278 0.362 0.475 0.837 0.373 1.85 2 0.277 0.376 0.333 0.709 0.339 1.55 3 0.243 0.319 0.416 0.735 0.329 1.50 4 0.282 0.350 0.413 0.763 0.348 0.83 5 0.273 0.361 0.324 0.685 0.327 0.52 6 0.248 0.299 0.320 0.619 0.289 0.16 7 0.500 0.667 1.000 1.667 0.671 0.10 8 0.266 0.318 0.418 0.736 0.329 0.09 9 0.262 0.333 0.286 0.619 0.296 0.07 10 0.246 0.335 0.353 0.688 0.320 0.06 11 - 1.000 - - 0.712 0.06 12 0.310 0.333 0.345 0.678 0.317 -0.03 13 0.250 0.250 0.250 0.500 0.234 -0.03 14 0.000 0.000 0.000 0.000 0.000 -0.06 15 0.220 0.300 0.330 0.630 0.293 -0.09 16 0.143 0.143 0.143 0.286 0.134 -0.11 17 0.226 0.306 0.311 0.617 0.289 -0.12 18 0.125 0.176 0.313 0.489 0.216 -0.14 19 0.000 0.000 0.000 0.000 0.000 -0.14 , '2014': Unnamed: 0 선수명 팀명 경기 타석 타수 안타 홈런 득점 타점 볼넷 삼진 도루 BABIP \ 0 0 테임즈 NC 125 514 443 152 37 95 121 58 99 11 0.367 1 1 나성범 NC 123 536 477 157 30 88 101 43 128 14 0.397 2 2 박민우 NC 118 491 416 124 1 87 40 56 89 50 0.373 3 3 손시헌 NC 97 361 307 90 5 39 39 34 53 2 0.331 4 4 지석훈 NC 114 238 212 58 6 26 34 16 46 1 0.323 5 5 이호준 NC 122 500 424 115 23 59 78 67 104 2 0.305 6 6 권희동 NC 101 252 221 63 7 39 36 25 43 6 0.324 7 7 모창민 NC 122 468 419 110 16 62 72 37 82 14 0.289 8 8 이종욱 NC 124 495 438 126 6 73 79 40 60 15 0.313 9 9 김준완 NC 6 5 4 2 0 1 0 1 1 1 0.667 10 10 최재원 NC 2 2 1 0 0 1 0 1 1 0 - 11 11 마낙길 NC 2 2 1 0 0 1 0 1 0 0 0.000 12 12 조영훈 NC 92 124 111 29 6 15 22 10 26 1 0.288 13 13 김태우 NC 4 5 5 1 0 0 0 0 3 0 0.500 14 14 박명환* NC 2 1 1 0 0 0 0 0 1 0 - 15 15 조평호 NC 2 2 2 0 0 0 0 0 0 0 0.000 16 16 강민국 NC 6 3 3 0 0 0 0 0 0 0 0.000 17 17 허준 NC 28 36 29 5 0 2 1 5 10 0 0.263 18 18 김성욱 NC 26 26 23 4 1 6 1 3 9 1 0.231 19 19 노진혁 NC 25 16 16 3 1 3 2 0 7 0 0.250 타율 출루율 장타율 OPS wOBA WAR 0 0.343 0.422 0.688 1.110 0.456 6.36 1 0.329 0.400 0.597 0.997 0.424 5.94 2 0.298 0.392 0.399 0.791 0.365 2.73 3 0.293 0.368 0.414 0.782 0.349 1.52 4 0.274 0.340 0.462 0.802 0.352 0.97 5 0.271 0.371 0.481 0.852 0.369 0.88 6 0.285 0.363 0.443 0.806 0.353 0.62 7 0.263 0.320 0.413 0.733 0.319 0.17 8 0.288 0.343 0.411 0.754 0.332 0.13 9 0.500 0.600 0.500 1.100 0.509 0.11 10 0.000 0.500 0.000 0.500 0.363 0.01 11 0.000 0.500 0.000 0.500 0.363 0.01 12 0.261 0.325 0.459 0.784 0.337 -0.02 13 0.200 0.200 0.400 0.600 0.244 -0.03 14 0.000 0.000 0.000 0.000 0.000 -0.03 15 0.000 0.000 0.000 0.000 0.000 -0.07 16 0.000 0.000 0.000 0.000 0.000 -0.10 17 0.172 0.294 0.276 0.570 0.268 -0.11 18 0.174 0.269 0.348 0.617 0.272 -0.15 19 0.188 0.188 0.375 0.563 0.231 -0.18 , '2015': Unnamed: 0 선수명 팀명 경기 타석 타수 안타 홈런 득점 타점 볼넷 삼진 도루 \ 0 0 테임즈 NC 142 595 472 180 47 130 140 103 91 40 1 1 나성범 NC 144 622 564 184 28 112 135 33 127 23 2 2 박민우 NC 141 617 520 158 3 111 47 73 108 46 3 3 이호준 NC 131 518 449 132 24 48 110 61 102 0 4 4 김종호 NC 133 486 424 125 4 90 36 44 65 41 5 5 조영훈 NC 103 146 124 35 8 20 35 19 36 3 6 6 손시헌 NC 140 508 440 108 13 56 58 36 66 3 7 7 이종욱 NC 125 504 440 118 5 63 52 54 78 17 8 8 모창민 NC 103 239 214 62 6 23 35 18 52 5 9 9 지석훈 NC 137 466 415 111 11 53 46 23 85 4 10 10 용덕한 NC 50 49 42 12 0 4 5 5 8 2 11 11 최재원 NC 114 102 85 21 2 31 13 10 29 14 12 12 박정준 NC 19 24 21 8 0 2 2 0 5 0 13 13 김태군 NC 144 474 421 107 6 45 52 25 77 1 14 14 조평호 NC 22 22 22 8 1 4 3 0 6 0 15 15 이창섭 NC 15 8 5 0 0 0 0 3 3 0 16 16 김준완 NC 30 54 44 10 0 12 2 10 10 2 17 17 강구성 NC 4 5 5 1 0 0 0 0 0 0 18 18 강민국 NC 1 2 2 0 0 0 0 0 1 0 19 19 김태진 NC 1 3 3 0 0 0 0 0 0 0 BABIP 타율 출루율 장타율 OPS wOBA WAR 0 0.390 0.381 0.497 0.790 1.287 0.520 11.73 1 0.374 0.326 0.373 0.553 0.926 0.390 4.46 2 0.373 0.304 0.399 0.404 0.803 0.364 3.52 3 0.332 0.294 0.381 0.510 0.891 0.381 2.19 4 0.338 0.295 0.364 0.394 0.758 0.340 1.03 5 0.329 0.282 0.372 0.540 0.912 0.389 1.00 6 0.260 0.245 0.319 0.398 0.717 0.316 0.85 7 0.315 0.268 0.351 0.368 0.719 0.322 0.84 8 0.352 0.290 0.340 0.439 0.779 0.340 0.76 9 0.311 0.267 0.328 0.383 0.711 0.317 0.51 10 0.353 0.286 0.375 0.310 0.685 0.326 0.44 11 0.352 0.247 0.366 0.412 0.778 0.350 0.30 12 0.500 0.381 0.458 0.476 0.934 0.417 0.25 13 0.293 0.254 0.307 0.354 0.661 0.294 0.25 14 0.467 0.364 0.364 0.591 0.955 0.401 0.18 15 0.000 0.000 0.375 0.000 0.375 0.286 -0.01 16 0.294 0.227 0.370 0.227 0.597 0.308 -0.04 17 0.200 0.200 0.200 0.400 0.600 0.242 -0.04 18 0.000 0.000 0.000 0.000 0.000 0.000 -0.06 19 0.000 0.000 0.000 0.000 0.000 0.000 -0.09 }
sheet
별 데이터를 각각 개별 변수에 저장
In [3]:
bb_13, bb_14, bb_15 = bb_data.values()
In [4]:
bb_list = [bb_13, bb_14, bb_15]
for bb in bb_list:
print(bb.shape)
(20, 20) (20, 20) (20, 20)
In [5]:
bb_13.columns
Out[5]:
Index(['Unnamed: 0', '선수명', '팀명', '경기', '타석', '타수', '안타', '홈런', '득점', '타점', '볼넷', '삼진', '도루', 'BABIP', '타율', '출루율', '장타율', 'OPS', 'wOBA', 'WAR'], dtype='object')
In [6]:
bb_13.head()
Out[6]:
Unnamed: 0 | 선수명 | 팀명 | 경기 | 타석 | 타수 | 안타 | 홈런 | 득점 | 타점 | 볼넷 | 삼진 | 도루 | BABIP | 타율 | 출루율 | 장타율 | OPS | wOBA | WAR | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 0 | 모창민 | NC | 108 | 436 | 395 | 109 | 12 | 57 | 51 | 37 | 68 | 16 | 0.307 | 0.276 | 0.339 | 0.443 | 0.782 | 0.353 | 2.31 |
1 | 1 | 이호준 | NC | 126 | 508 | 442 | 123 | 20 | 46 | 87 | 60 | 109 | 2 | 0.324 | 0.278 | 0.362 | 0.475 | 0.837 | 0.373 | 1.85 |
2 | 2 | 김종호 | NC | 128 | 546 | 465 | 129 | 0 | 72 | 22 | 57 | 100 | 50 | 0.352 | 0.277 | 0.376 | 0.333 | 0.709 | 0.339 | 1.55 |
3 | 3 | 나성범 | NC | 104 | 458 | 404 | 98 | 14 | 55 | 64 | 33 | 95 | 12 | 0.279 | 0.243 | 0.319 | 0.416 | 0.735 | 0.329 | 1.50 |
4 | 4 | 조영훈 | NC | 120 | 426 | 380 | 107 | 6 | 38 | 39 | 39 | 56 | 4 | 0.316 | 0.282 | 0.350 | 0.413 | 0.763 | 0.348 | 0.83 |
- 각 data의
Unnamed: 0
column 삭제
In [7]:
for bb in bb_list:
bb.drop('Unnamed: 0', axis=1, inplace=True)
In [8]:
bb_13.tail()
Out[8]:
선수명 | 팀명 | 경기 | 타석 | 타수 | 안타 | 홈런 | 득점 | 타점 | 볼넷 | 삼진 | 도루 | BABIP | 타율 | 출루율 | 장타율 | OPS | wOBA | WAR | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
15 | 지석훈 | NC | 104 | 356 | 309 | 68 | 3 | 25 | 35 | 30 | 82 | 2 | 0.285 | 0.220 | 0.300 | 0.330 | 0.630 | 0.293 | -0.09 |
16 | 김종찬 | NC | 5 | 7 | 7 | 1 | 0 | 0 | 0 | 0 | 3 | 0 | 0.250 | 0.143 | 0.143 | 0.143 | 0.286 | 0.134 | -0.11 |
17 | 차화준 | NC | 58 | 121 | 106 | 24 | 1 | 18 | 7 | 12 | 29 | 4 | 0.295 | 0.226 | 0.306 | 0.311 | 0.617 | 0.289 | -0.12 |
18 | 김동건 | NC | 7 | 17 | 16 | 2 | 1 | 1 | 1 | 1 | 7 | 0 | 0.125 | 0.125 | 0.176 | 0.313 | 0.489 | 0.216 | -0.14 |
19 | 이창섭 | NC | 5 | 5 | 5 | 0 | 0 | 0 | 0 | 0 | 2 | 0 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | -0.14 |
선수명
column: 동명이인 있는지 여부와 선수 명수 추출obj.nunique()
: 고유값(value) data 개수 추출
In [9]:
print(bb_13['선수명'].nunique())
print(len(bb_13['선수명']))
20 20
- 전체년도
선수명
동명이인 여부
In [10]:
for data in bb_list:
if len(data['선수명'].unique()) != data['선수명'].nunique():
print(f'동명이인이 있습니다.')
set
:집합 자료형: 내부에 중복 데이터 입력 시 1개로 간주- 여러년도간 주전이었던
선수명
확인 가능
- 여러년도간 주전이었던
In [11]:
set(bb_13.선수명.unique()) & set(bb_14.선수명.unique()) & set(bb_15.선수명.unique())
Out[11]:
{'나성범', '모창민', '박민우', '이호준', '조영훈', '조평호', '지석훈'}
1.1. 최종 데이터 통합¶
- 2013, 2014, 2015 data를 모두 합치면서, 각각이 몇 년도 데이터인지 알 수 있도록 '연도'값 추가
- 각 data에
연도
column 추가
In [12]:
year = 2013
for data in bb_list:
data['연도'] = year
year += 1
bb_13.head()
Out[12]:
선수명 | 팀명 | 경기 | 타석 | 타수 | 안타 | 홈런 | 득점 | 타점 | 볼넷 | 삼진 | 도루 | BABIP | 타율 | 출루율 | 장타율 | OPS | wOBA | WAR | 연도 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 모창민 | NC | 108 | 436 | 395 | 109 | 12 | 57 | 51 | 37 | 68 | 16 | 0.307 | 0.276 | 0.339 | 0.443 | 0.782 | 0.353 | 2.31 | 2013 |
1 | 이호준 | NC | 126 | 508 | 442 | 123 | 20 | 46 | 87 | 60 | 109 | 2 | 0.324 | 0.278 | 0.362 | 0.475 | 0.837 | 0.373 | 1.85 | 2013 |
2 | 김종호 | NC | 128 | 546 | 465 | 129 | 0 | 72 | 22 | 57 | 100 | 50 | 0.352 | 0.277 | 0.376 | 0.333 | 0.709 | 0.339 | 1.55 | 2013 |
3 | 나성범 | NC | 104 | 458 | 404 | 98 | 14 | 55 | 64 | 33 | 95 | 12 | 0.279 | 0.243 | 0.319 | 0.416 | 0.735 | 0.329 | 1.50 | 2013 |
4 | 조영훈 | NC | 120 | 426 | 380 | 107 | 6 | 38 | 39 | 39 | 56 | 4 | 0.316 | 0.282 | 0.350 | 0.413 | 0.763 | 0.348 | 0.83 | 2013 |
여러개의 DataFrame 결합
- columns 개수 및 이름이 같음 > 행의 축 방향으로 결합:
pd.concat()
- columns 개수 및 이름이 같음 > 행의 축 방향으로 결합:
In [13]:
bb_data = pd.concat(bb_list, axis=0)
bb_data.tail()
Out[13]:
선수명 | 팀명 | 경기 | 타석 | 타수 | 안타 | 홈런 | 득점 | 타점 | 볼넷 | 삼진 | 도루 | BABIP | 타율 | 출루율 | 장타율 | OPS | wOBA | WAR | 연도 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
15 | 이창섭 | NC | 15 | 8 | 5 | 0 | 0 | 0 | 0 | 3 | 3 | 0 | 0.0 | 0.0 | 0.375 | 0.0 | 0.375 | 0.286 | -0.01 | 2015 |
16 | 김준완 | NC | 30 | 54 | 44 | 10 | 0 | 12 | 2 | 10 | 10 | 2 | 0.294 | 0.227 | 0.370 | 0.227 | 0.597 | 0.308 | -0.04 | 2015 |
17 | 강구성 | NC | 4 | 5 | 5 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0.2 | 0.2 | 0.200 | 0.4 | 0.6 | 0.242 | -0.04 | 2015 |
18 | 강민국 | NC | 1 | 2 | 2 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.0 | 0.0 | 0.000 | 0.0 | 0.0 | 0.000 | -0.06 | 2015 |
19 | 김태진 | NC | 1 | 3 | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.0 | 0.0 | 0.000 | 0.0 | 0.0 | 0.000 | -0.09 | 2015 |
- 조건색인을 통해 2013, 2014년도 데이터만 조회
In [14]:
bb_data[(bb_data['연도'] == 2013) | (bb_data['연도'] == 2014)]
Out[14]:
선수명 | 팀명 | 경기 | 타석 | 타수 | 안타 | 홈런 | 득점 | 타점 | 볼넷 | 삼진 | 도루 | BABIP | 타율 | 출루율 | 장타율 | OPS | wOBA | WAR | 연도 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 모창민 | NC | 108 | 436 | 395 | 109 | 12 | 57 | 51 | 37 | 68 | 16 | 0.307 | 0.276 | 0.339 | 0.443 | 0.782 | 0.353 | 2.31 | 2013 |
1 | 이호준 | NC | 126 | 508 | 442 | 123 | 20 | 46 | 87 | 60 | 109 | 2 | 0.324 | 0.278 | 0.362 | 0.475 | 0.837 | 0.373 | 1.85 | 2013 |
2 | 김종호 | NC | 128 | 546 | 465 | 129 | 0 | 72 | 22 | 57 | 100 | 50 | 0.352 | 0.277 | 0.376 | 0.333 | 0.709 | 0.339 | 1.55 | 2013 |
3 | 나성범 | NC | 104 | 458 | 404 | 98 | 14 | 55 | 64 | 33 | 95 | 12 | 0.279 | 0.243 | 0.319 | 0.416 | 0.735 | 0.329 | 1.50 | 2013 |
4 | 조영훈 | NC | 120 | 426 | 380 | 107 | 6 | 38 | 39 | 39 | 56 | 4 | 0.316 | 0.282 | 0.350 | 0.413 | 0.763 | 0.348 | 0.83 | 2013 |
5 | 이현곤 | NC | 91 | 161 | 139 | 38 | 0 | 10 | 9 | 16 | 14 | 2 | 0.304 | 0.273 | 0.361 | 0.324 | 0.685 | 0.327 | 0.52 | 2013 |
6 | 이상호 | NC | 102 | 138 | 125 | 31 | 0 | 26 | 13 | 9 | 21 | 24 | 0.298 | 0.248 | 0.299 | 0.320 | 0.619 | 0.289 | 0.16 | 2013 |
7 | 강진성 | NC | 3 | 3 | 2 | 1 | 0 | 1 | 0 | 1 | 0 | 0 | 0.500 | 0.500 | 0.667 | 1.000 | 1.667 | 0.671 | 0.10 | 2013 |
8 | 조평호 | NC | 26 | 86 | 79 | 21 | 2 | 12 | 7 | 6 | 24 | 1 | 0.358 | 0.266 | 0.318 | 0.418 | 0.736 | 0.329 | 0.09 | 2013 |
9 | 박민우 | NC | 32 | 48 | 42 | 11 | 0 | 10 | 6 | 5 | 7 | 9 | 0.306 | 0.262 | 0.333 | 0.286 | 0.619 | 0.296 | 0.07 | 2013 |
10 | 박정준 | NC | 77 | 195 | 167 | 41 | 4 | 24 | 21 | 23 | 44 | 4 | 0.303 | 0.246 | 0.335 | 0.353 | 0.688 | 0.320 | 0.06 | 2013 |
11 | 이승호 | NC | 2 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | - | - | 1.000 | - | - | 0.712 | 0.06 | 2013 |
12 | 마낙길 | NC | 24 | 31 | 29 | 9 | 0 | 5 | 0 | 1 | 5 | 2 | 0.375 | 0.310 | 0.333 | 0.345 | 0.678 | 0.317 | -0.03 | 2013 |
13 | 김성욱 | NC | 4 | 4 | 4 | 1 | 0 | 0 | 1 | 0 | 2 | 0 | 0.500 | 0.250 | 0.250 | 0.250 | 0.500 | 0.234 | -0.03 | 2013 |
14 | 강구성 | NC | 2 | 2 | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | -0.06 | 2013 |
15 | 지석훈 | NC | 104 | 356 | 309 | 68 | 3 | 25 | 35 | 30 | 82 | 2 | 0.285 | 0.220 | 0.300 | 0.330 | 0.630 | 0.293 | -0.09 | 2013 |
16 | 김종찬 | NC | 5 | 7 | 7 | 1 | 0 | 0 | 0 | 0 | 3 | 0 | 0.250 | 0.143 | 0.143 | 0.143 | 0.286 | 0.134 | -0.11 | 2013 |
17 | 차화준 | NC | 58 | 121 | 106 | 24 | 1 | 18 | 7 | 12 | 29 | 4 | 0.295 | 0.226 | 0.306 | 0.311 | 0.617 | 0.289 | -0.12 | 2013 |
18 | 김동건 | NC | 7 | 17 | 16 | 2 | 1 | 1 | 1 | 1 | 7 | 0 | 0.125 | 0.125 | 0.176 | 0.313 | 0.489 | 0.216 | -0.14 | 2013 |
19 | 이창섭 | NC | 5 | 5 | 5 | 0 | 0 | 0 | 0 | 0 | 2 | 0 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | -0.14 | 2013 |
0 | 테임즈 | NC | 125 | 514 | 443 | 152 | 37 | 95 | 121 | 58 | 99 | 11 | 0.367 | 0.343 | 0.422 | 0.688 | 1.11 | 0.456 | 6.36 | 2014 |
1 | 나성범 | NC | 123 | 536 | 477 | 157 | 30 | 88 | 101 | 43 | 128 | 14 | 0.397 | 0.329 | 0.400 | 0.597 | 0.997 | 0.424 | 5.94 | 2014 |
2 | 박민우 | NC | 118 | 491 | 416 | 124 | 1 | 87 | 40 | 56 | 89 | 50 | 0.373 | 0.298 | 0.392 | 0.399 | 0.791 | 0.365 | 2.73 | 2014 |
3 | 손시헌 | NC | 97 | 361 | 307 | 90 | 5 | 39 | 39 | 34 | 53 | 2 | 0.331 | 0.293 | 0.368 | 0.414 | 0.782 | 0.349 | 1.52 | 2014 |
4 | 지석훈 | NC | 114 | 238 | 212 | 58 | 6 | 26 | 34 | 16 | 46 | 1 | 0.323 | 0.274 | 0.340 | 0.462 | 0.802 | 0.352 | 0.97 | 2014 |
5 | 이호준 | NC | 122 | 500 | 424 | 115 | 23 | 59 | 78 | 67 | 104 | 2 | 0.305 | 0.271 | 0.371 | 0.481 | 0.852 | 0.369 | 0.88 | 2014 |
6 | 권희동 | NC | 101 | 252 | 221 | 63 | 7 | 39 | 36 | 25 | 43 | 6 | 0.324 | 0.285 | 0.363 | 0.443 | 0.806 | 0.353 | 0.62 | 2014 |
7 | 모창민 | NC | 122 | 468 | 419 | 110 | 16 | 62 | 72 | 37 | 82 | 14 | 0.289 | 0.263 | 0.320 | 0.413 | 0.733 | 0.319 | 0.17 | 2014 |
8 | 이종욱 | NC | 124 | 495 | 438 | 126 | 6 | 73 | 79 | 40 | 60 | 15 | 0.313 | 0.288 | 0.343 | 0.411 | 0.754 | 0.332 | 0.13 | 2014 |
9 | 김준완 | NC | 6 | 5 | 4 | 2 | 0 | 1 | 0 | 1 | 1 | 1 | 0.667 | 0.5 | 0.600 | 0.5 | 1.1 | 0.509 | 0.11 | 2014 |
10 | 최재원 | NC | 2 | 2 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | - | 0.0 | 0.500 | 0.0 | 0.5 | 0.363 | 0.01 | 2014 |
11 | 마낙길 | NC | 2 | 2 | 1 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0.000 | 0.0 | 0.500 | 0.0 | 0.5 | 0.363 | 0.01 | 2014 |
12 | 조영훈 | NC | 92 | 124 | 111 | 29 | 6 | 15 | 22 | 10 | 26 | 1 | 0.288 | 0.261 | 0.325 | 0.459 | 0.784 | 0.337 | -0.02 | 2014 |
13 | 김태우 | NC | 4 | 5 | 5 | 1 | 0 | 0 | 0 | 0 | 3 | 0 | 0.500 | 0.2 | 0.200 | 0.4 | 0.6 | 0.244 | -0.03 | 2014 |
14 | 박명환* | NC | 2 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | - | 0.0 | 0.000 | 0.0 | 0.0 | 0.000 | -0.03 | 2014 |
15 | 조평호 | NC | 2 | 2 | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.000 | 0.0 | 0.000 | 0.0 | 0.0 | 0.000 | -0.07 | 2014 |
16 | 강민국 | NC | 6 | 3 | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.000 | 0.0 | 0.000 | 0.0 | 0.0 | 0.000 | -0.10 | 2014 |
17 | 허준 | NC | 28 | 36 | 29 | 5 | 0 | 2 | 1 | 5 | 10 | 0 | 0.263 | 0.172 | 0.294 | 0.276 | 0.57 | 0.268 | -0.11 | 2014 |
18 | 김성욱 | NC | 26 | 26 | 23 | 4 | 1 | 6 | 1 | 3 | 9 | 1 | 0.231 | 0.174 | 0.269 | 0.348 | 0.617 | 0.272 | -0.15 | 2014 |
19 | 노진혁 | NC | 25 | 16 | 16 | 3 | 1 | 3 | 2 | 0 | 7 | 0 | 0.250 | 0.188 | 0.188 | 0.375 | 0.563 | 0.231 | -0.18 | 2014 |
In [15]:
bb_data[bb_data.연도 != 2015]
Out[15]:
선수명 | 팀명 | 경기 | 타석 | 타수 | 안타 | 홈런 | 득점 | 타점 | 볼넷 | 삼진 | 도루 | BABIP | 타율 | 출루율 | 장타율 | OPS | wOBA | WAR | 연도 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 모창민 | NC | 108 | 436 | 395 | 109 | 12 | 57 | 51 | 37 | 68 | 16 | 0.307 | 0.276 | 0.339 | 0.443 | 0.782 | 0.353 | 2.31 | 2013 |
1 | 이호준 | NC | 126 | 508 | 442 | 123 | 20 | 46 | 87 | 60 | 109 | 2 | 0.324 | 0.278 | 0.362 | 0.475 | 0.837 | 0.373 | 1.85 | 2013 |
2 | 김종호 | NC | 128 | 546 | 465 | 129 | 0 | 72 | 22 | 57 | 100 | 50 | 0.352 | 0.277 | 0.376 | 0.333 | 0.709 | 0.339 | 1.55 | 2013 |
3 | 나성범 | NC | 104 | 458 | 404 | 98 | 14 | 55 | 64 | 33 | 95 | 12 | 0.279 | 0.243 | 0.319 | 0.416 | 0.735 | 0.329 | 1.50 | 2013 |
4 | 조영훈 | NC | 120 | 426 | 380 | 107 | 6 | 38 | 39 | 39 | 56 | 4 | 0.316 | 0.282 | 0.350 | 0.413 | 0.763 | 0.348 | 0.83 | 2013 |
5 | 이현곤 | NC | 91 | 161 | 139 | 38 | 0 | 10 | 9 | 16 | 14 | 2 | 0.304 | 0.273 | 0.361 | 0.324 | 0.685 | 0.327 | 0.52 | 2013 |
6 | 이상호 | NC | 102 | 138 | 125 | 31 | 0 | 26 | 13 | 9 | 21 | 24 | 0.298 | 0.248 | 0.299 | 0.320 | 0.619 | 0.289 | 0.16 | 2013 |
7 | 강진성 | NC | 3 | 3 | 2 | 1 | 0 | 1 | 0 | 1 | 0 | 0 | 0.500 | 0.500 | 0.667 | 1.000 | 1.667 | 0.671 | 0.10 | 2013 |
8 | 조평호 | NC | 26 | 86 | 79 | 21 | 2 | 12 | 7 | 6 | 24 | 1 | 0.358 | 0.266 | 0.318 | 0.418 | 0.736 | 0.329 | 0.09 | 2013 |
9 | 박민우 | NC | 32 | 48 | 42 | 11 | 0 | 10 | 6 | 5 | 7 | 9 | 0.306 | 0.262 | 0.333 | 0.286 | 0.619 | 0.296 | 0.07 | 2013 |
10 | 박정준 | NC | 77 | 195 | 167 | 41 | 4 | 24 | 21 | 23 | 44 | 4 | 0.303 | 0.246 | 0.335 | 0.353 | 0.688 | 0.320 | 0.06 | 2013 |
11 | 이승호 | NC | 2 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | - | - | 1.000 | - | - | 0.712 | 0.06 | 2013 |
12 | 마낙길 | NC | 24 | 31 | 29 | 9 | 0 | 5 | 0 | 1 | 5 | 2 | 0.375 | 0.310 | 0.333 | 0.345 | 0.678 | 0.317 | -0.03 | 2013 |
13 | 김성욱 | NC | 4 | 4 | 4 | 1 | 0 | 0 | 1 | 0 | 2 | 0 | 0.500 | 0.250 | 0.250 | 0.250 | 0.500 | 0.234 | -0.03 | 2013 |
14 | 강구성 | NC | 2 | 2 | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | -0.06 | 2013 |
15 | 지석훈 | NC | 104 | 356 | 309 | 68 | 3 | 25 | 35 | 30 | 82 | 2 | 0.285 | 0.220 | 0.300 | 0.330 | 0.630 | 0.293 | -0.09 | 2013 |
16 | 김종찬 | NC | 5 | 7 | 7 | 1 | 0 | 0 | 0 | 0 | 3 | 0 | 0.250 | 0.143 | 0.143 | 0.143 | 0.286 | 0.134 | -0.11 | 2013 |
17 | 차화준 | NC | 58 | 121 | 106 | 24 | 1 | 18 | 7 | 12 | 29 | 4 | 0.295 | 0.226 | 0.306 | 0.311 | 0.617 | 0.289 | -0.12 | 2013 |
18 | 김동건 | NC | 7 | 17 | 16 | 2 | 1 | 1 | 1 | 1 | 7 | 0 | 0.125 | 0.125 | 0.176 | 0.313 | 0.489 | 0.216 | -0.14 | 2013 |
19 | 이창섭 | NC | 5 | 5 | 5 | 0 | 0 | 0 | 0 | 0 | 2 | 0 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | -0.14 | 2013 |
0 | 테임즈 | NC | 125 | 514 | 443 | 152 | 37 | 95 | 121 | 58 | 99 | 11 | 0.367 | 0.343 | 0.422 | 0.688 | 1.11 | 0.456 | 6.36 | 2014 |
1 | 나성범 | NC | 123 | 536 | 477 | 157 | 30 | 88 | 101 | 43 | 128 | 14 | 0.397 | 0.329 | 0.400 | 0.597 | 0.997 | 0.424 | 5.94 | 2014 |
2 | 박민우 | NC | 118 | 491 | 416 | 124 | 1 | 87 | 40 | 56 | 89 | 50 | 0.373 | 0.298 | 0.392 | 0.399 | 0.791 | 0.365 | 2.73 | 2014 |
3 | 손시헌 | NC | 97 | 361 | 307 | 90 | 5 | 39 | 39 | 34 | 53 | 2 | 0.331 | 0.293 | 0.368 | 0.414 | 0.782 | 0.349 | 1.52 | 2014 |
4 | 지석훈 | NC | 114 | 238 | 212 | 58 | 6 | 26 | 34 | 16 | 46 | 1 | 0.323 | 0.274 | 0.340 | 0.462 | 0.802 | 0.352 | 0.97 | 2014 |
5 | 이호준 | NC | 122 | 500 | 424 | 115 | 23 | 59 | 78 | 67 | 104 | 2 | 0.305 | 0.271 | 0.371 | 0.481 | 0.852 | 0.369 | 0.88 | 2014 |
6 | 권희동 | NC | 101 | 252 | 221 | 63 | 7 | 39 | 36 | 25 | 43 | 6 | 0.324 | 0.285 | 0.363 | 0.443 | 0.806 | 0.353 | 0.62 | 2014 |
7 | 모창민 | NC | 122 | 468 | 419 | 110 | 16 | 62 | 72 | 37 | 82 | 14 | 0.289 | 0.263 | 0.320 | 0.413 | 0.733 | 0.319 | 0.17 | 2014 |
8 | 이종욱 | NC | 124 | 495 | 438 | 126 | 6 | 73 | 79 | 40 | 60 | 15 | 0.313 | 0.288 | 0.343 | 0.411 | 0.754 | 0.332 | 0.13 | 2014 |
9 | 김준완 | NC | 6 | 5 | 4 | 2 | 0 | 1 | 0 | 1 | 1 | 1 | 0.667 | 0.5 | 0.600 | 0.5 | 1.1 | 0.509 | 0.11 | 2014 |
10 | 최재원 | NC | 2 | 2 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | - | 0.0 | 0.500 | 0.0 | 0.5 | 0.363 | 0.01 | 2014 |
11 | 마낙길 | NC | 2 | 2 | 1 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0.000 | 0.0 | 0.500 | 0.0 | 0.5 | 0.363 | 0.01 | 2014 |
12 | 조영훈 | NC | 92 | 124 | 111 | 29 | 6 | 15 | 22 | 10 | 26 | 1 | 0.288 | 0.261 | 0.325 | 0.459 | 0.784 | 0.337 | -0.02 | 2014 |
13 | 김태우 | NC | 4 | 5 | 5 | 1 | 0 | 0 | 0 | 0 | 3 | 0 | 0.500 | 0.2 | 0.200 | 0.4 | 0.6 | 0.244 | -0.03 | 2014 |
14 | 박명환* | NC | 2 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | - | 0.0 | 0.000 | 0.0 | 0.0 | 0.000 | -0.03 | 2014 |
15 | 조평호 | NC | 2 | 2 | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.000 | 0.0 | 0.000 | 0.0 | 0.0 | 0.000 | -0.07 | 2014 |
16 | 강민국 | NC | 6 | 3 | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.000 | 0.0 | 0.000 | 0.0 | 0.0 | 0.000 | -0.10 | 2014 |
17 | 허준 | NC | 28 | 36 | 29 | 5 | 0 | 2 | 1 | 5 | 10 | 0 | 0.263 | 0.172 | 0.294 | 0.276 | 0.57 | 0.268 | -0.11 | 2014 |
18 | 김성욱 | NC | 26 | 26 | 23 | 4 | 1 | 6 | 1 | 3 | 9 | 1 | 0.231 | 0.174 | 0.269 | 0.348 | 0.617 | 0.272 | -0.15 | 2014 |
19 | 노진혁 | NC | 25 | 16 | 16 | 3 | 1 | 3 | 2 | 0 | 7 | 0 | 0.250 | 0.188 | 0.188 | 0.375 | 0.563 | 0.231 | -0.18 | 2014 |
In [16]:
top_10 = bb_data[bb_data.연도 == 2015].sort_values(by=['타율', '안타'],
ascending=[False, False]).head(10)
top_10
Out[16]:
선수명 | 팀명 | 경기 | 타석 | 타수 | 안타 | 홈런 | 득점 | 타점 | 볼넷 | 삼진 | 도루 | BABIP | 타율 | 출루율 | 장타율 | OPS | wOBA | WAR | 연도 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 테임즈 | NC | 142 | 595 | 472 | 180 | 47 | 130 | 140 | 103 | 91 | 40 | 0.39 | 0.381 | 0.497 | 0.79 | 1.287 | 0.520 | 11.73 | 2015 |
12 | 박정준 | NC | 19 | 24 | 21 | 8 | 0 | 2 | 2 | 0 | 5 | 0 | 0.5 | 0.381 | 0.458 | 0.476 | 0.934 | 0.417 | 0.25 | 2015 |
14 | 조평호 | NC | 22 | 22 | 22 | 8 | 1 | 4 | 3 | 0 | 6 | 0 | 0.467 | 0.364 | 0.364 | 0.591 | 0.955 | 0.401 | 0.18 | 2015 |
1 | 나성범 | NC | 144 | 622 | 564 | 184 | 28 | 112 | 135 | 33 | 127 | 23 | 0.374 | 0.326 | 0.373 | 0.553 | 0.926 | 0.390 | 4.46 | 2015 |
2 | 박민우 | NC | 141 | 617 | 520 | 158 | 3 | 111 | 47 | 73 | 108 | 46 | 0.373 | 0.304 | 0.399 | 0.404 | 0.803 | 0.364 | 3.52 | 2015 |
4 | 김종호 | NC | 133 | 486 | 424 | 125 | 4 | 90 | 36 | 44 | 65 | 41 | 0.338 | 0.295 | 0.364 | 0.394 | 0.758 | 0.340 | 1.03 | 2015 |
3 | 이호준 | NC | 131 | 518 | 449 | 132 | 24 | 48 | 110 | 61 | 102 | 0 | 0.332 | 0.294 | 0.381 | 0.51 | 0.891 | 0.381 | 2.19 | 2015 |
8 | 모창민 | NC | 103 | 239 | 214 | 62 | 6 | 23 | 35 | 18 | 52 | 5 | 0.352 | 0.29 | 0.340 | 0.439 | 0.779 | 0.340 | 0.76 | 2015 |
10 | 용덕한 | NC | 50 | 49 | 42 | 12 | 0 | 4 | 5 | 5 | 8 | 2 | 0.353 | 0.286 | 0.375 | 0.31 | 0.685 | 0.326 | 0.44 | 2015 |
5 | 조영훈 | NC | 103 | 146 | 124 | 35 | 8 | 20 | 35 | 19 | 36 | 3 | 0.329 | 0.282 | 0.372 | 0.54 | 0.912 | 0.389 | 1.00 | 2015 |
- 특정
column
에obj.tolist()
사용: Pythonlist
로 추출 가능
In [17]:
top_10.선수명.tolist()
Out[17]:
['테임즈', '박정준', '조평호', '나성범', '박민우', '김종호', '이호준', '모창민', '용덕한', '조영훈']
In [18]:
bb_hit = bb_data.groupby('선수명')['안타'].mean()
bb_hit.sort_values(ascending=False)
Out[18]:
선수명 테임즈 166.000000 나성범 146.333333 김종호 127.000000 이호준 123.333333 이종욱 122.000000 김태군 107.000000 손시헌 99.000000 박민우 97.666667 모창민 93.666667 지석훈 79.000000 권희동 63.000000 조영훈 57.000000 이현곤 38.000000 이상호 31.000000 박정준 24.500000 차화준 24.000000 용덕한 12.000000 최재원 10.500000 조평호 9.666667 김준완 6.000000 허준 5.000000 마낙길 4.500000 노진혁 3.000000 김성욱 2.500000 김동건 2.000000 김태우 1.000000 김종찬 1.000000 강진성 1.000000 강구성 0.500000 강민국 0.000000 이승호 0.000000 박명환* 0.000000 이창섭 0.000000 김태진 0.000000 Name: 안타, dtype: float64
obj.groupby()
사용 시 >obj.groupby().[[col list]]
2중 list 전달하면DataFrame
반환
In [19]:
bb_data.groupby('선수명')[['안타']].mean().sort_values(by='안타',
ascending=False).head(10)
Out[19]:
안타 | |
---|---|
선수명 | |
테임즈 | 166.000000 |
나성범 | 146.333333 |
김종호 | 127.000000 |
이호준 | 123.333333 |
이종욱 | 122.000000 |
김태군 | 107.000000 |
손시헌 | 99.000000 |
박민우 | 97.666667 |
모창민 | 93.666667 |
지석훈 | 79.000000 |
- object index를 list로:
obj.index.tolist()
In [20]:
top10_player = bb_data.groupby('선수명')[['안타']].mean().sort_values(by='안타',
ascending=False).head(10)
print(top10_player)
top10_list = top10_player.index.tolist()
print(top10_list)
안타 선수명 테임즈 166.000000 나성범 146.333333 김종호 127.000000 이호준 123.333333 이종욱 122.000000 김태군 107.000000 손시헌 99.000000 박민우 97.666667 모창민 93.666667 지석훈 79.000000 ['테임즈', '나성범', '김종호', '이호준', '이종욱', '김태군', '손시헌', '박민우', '모창민', '지석훈']
조건색인:
obj.isin(list)
:list
에 해당하는 data만 True인DataFrame
반환- fancy indexing: 조건색인시 미리 준비된
list
에 해당하는 목록만 남김
- fancy indexing: 조건색인시 미리 준비된
In [21]:
top_df = bb_data[bb_data.선수명.isin(top10_list)]
top_df
Out[21]:
선수명 | 팀명 | 경기 | 타석 | 타수 | 안타 | 홈런 | 득점 | 타점 | 볼넷 | 삼진 | 도루 | BABIP | 타율 | 출루율 | 장타율 | OPS | wOBA | WAR | 연도 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 모창민 | NC | 108 | 436 | 395 | 109 | 12 | 57 | 51 | 37 | 68 | 16 | 0.307 | 0.276 | 0.339 | 0.443 | 0.782 | 0.353 | 2.31 | 2013 |
1 | 이호준 | NC | 126 | 508 | 442 | 123 | 20 | 46 | 87 | 60 | 109 | 2 | 0.324 | 0.278 | 0.362 | 0.475 | 0.837 | 0.373 | 1.85 | 2013 |
2 | 김종호 | NC | 128 | 546 | 465 | 129 | 0 | 72 | 22 | 57 | 100 | 50 | 0.352 | 0.277 | 0.376 | 0.333 | 0.709 | 0.339 | 1.55 | 2013 |
3 | 나성범 | NC | 104 | 458 | 404 | 98 | 14 | 55 | 64 | 33 | 95 | 12 | 0.279 | 0.243 | 0.319 | 0.416 | 0.735 | 0.329 | 1.50 | 2013 |
9 | 박민우 | NC | 32 | 48 | 42 | 11 | 0 | 10 | 6 | 5 | 7 | 9 | 0.306 | 0.262 | 0.333 | 0.286 | 0.619 | 0.296 | 0.07 | 2013 |
15 | 지석훈 | NC | 104 | 356 | 309 | 68 | 3 | 25 | 35 | 30 | 82 | 2 | 0.285 | 0.220 | 0.300 | 0.330 | 0.630 | 0.293 | -0.09 | 2013 |
0 | 테임즈 | NC | 125 | 514 | 443 | 152 | 37 | 95 | 121 | 58 | 99 | 11 | 0.367 | 0.343 | 0.422 | 0.688 | 1.11 | 0.456 | 6.36 | 2014 |
1 | 나성범 | NC | 123 | 536 | 477 | 157 | 30 | 88 | 101 | 43 | 128 | 14 | 0.397 | 0.329 | 0.400 | 0.597 | 0.997 | 0.424 | 5.94 | 2014 |
2 | 박민우 | NC | 118 | 491 | 416 | 124 | 1 | 87 | 40 | 56 | 89 | 50 | 0.373 | 0.298 | 0.392 | 0.399 | 0.791 | 0.365 | 2.73 | 2014 |
3 | 손시헌 | NC | 97 | 361 | 307 | 90 | 5 | 39 | 39 | 34 | 53 | 2 | 0.331 | 0.293 | 0.368 | 0.414 | 0.782 | 0.349 | 1.52 | 2014 |
4 | 지석훈 | NC | 114 | 238 | 212 | 58 | 6 | 26 | 34 | 16 | 46 | 1 | 0.323 | 0.274 | 0.340 | 0.462 | 0.802 | 0.352 | 0.97 | 2014 |
5 | 이호준 | NC | 122 | 500 | 424 | 115 | 23 | 59 | 78 | 67 | 104 | 2 | 0.305 | 0.271 | 0.371 | 0.481 | 0.852 | 0.369 | 0.88 | 2014 |
7 | 모창민 | NC | 122 | 468 | 419 | 110 | 16 | 62 | 72 | 37 | 82 | 14 | 0.289 | 0.263 | 0.320 | 0.413 | 0.733 | 0.319 | 0.17 | 2014 |
8 | 이종욱 | NC | 124 | 495 | 438 | 126 | 6 | 73 | 79 | 40 | 60 | 15 | 0.313 | 0.288 | 0.343 | 0.411 | 0.754 | 0.332 | 0.13 | 2014 |
0 | 테임즈 | NC | 142 | 595 | 472 | 180 | 47 | 130 | 140 | 103 | 91 | 40 | 0.39 | 0.381 | 0.497 | 0.79 | 1.287 | 0.520 | 11.73 | 2015 |
1 | 나성범 | NC | 144 | 622 | 564 | 184 | 28 | 112 | 135 | 33 | 127 | 23 | 0.374 | 0.326 | 0.373 | 0.553 | 0.926 | 0.390 | 4.46 | 2015 |
2 | 박민우 | NC | 141 | 617 | 520 | 158 | 3 | 111 | 47 | 73 | 108 | 46 | 0.373 | 0.304 | 0.399 | 0.404 | 0.803 | 0.364 | 3.52 | 2015 |
3 | 이호준 | NC | 131 | 518 | 449 | 132 | 24 | 48 | 110 | 61 | 102 | 0 | 0.332 | 0.294 | 0.381 | 0.51 | 0.891 | 0.381 | 2.19 | 2015 |
4 | 김종호 | NC | 133 | 486 | 424 | 125 | 4 | 90 | 36 | 44 | 65 | 41 | 0.338 | 0.295 | 0.364 | 0.394 | 0.758 | 0.340 | 1.03 | 2015 |
6 | 손시헌 | NC | 140 | 508 | 440 | 108 | 13 | 56 | 58 | 36 | 66 | 3 | 0.26 | 0.245 | 0.319 | 0.398 | 0.717 | 0.316 | 0.85 | 2015 |
7 | 이종욱 | NC | 125 | 504 | 440 | 118 | 5 | 63 | 52 | 54 | 78 | 17 | 0.315 | 0.268 | 0.351 | 0.368 | 0.719 | 0.322 | 0.84 | 2015 |
8 | 모창민 | NC | 103 | 239 | 214 | 62 | 6 | 23 | 35 | 18 | 52 | 5 | 0.352 | 0.29 | 0.340 | 0.439 | 0.779 | 0.340 | 0.76 | 2015 |
9 | 지석훈 | NC | 137 | 466 | 415 | 111 | 11 | 53 | 46 | 23 | 85 | 4 | 0.311 | 0.267 | 0.328 | 0.383 | 0.711 | 0.317 | 0.51 | 2015 |
13 | 김태군 | NC | 144 | 474 | 421 | 107 | 6 | 45 | 52 | 25 | 77 | 1 | 0.293 | 0.254 | 0.307 | 0.354 | 0.661 | 0.294 | 0.25 | 2015 |
연도
,선수명
,안타
,홈런
,타율
columns만 남기기
In [22]:
top_df = top_df[['연도', '선수명', '안타', '홈런', '타율']]
top_df
Out[22]:
연도 | 선수명 | 안타 | 홈런 | 타율 | |
---|---|---|---|---|---|
0 | 2013 | 모창민 | 109 | 12 | 0.276 |
1 | 2013 | 이호준 | 123 | 20 | 0.278 |
2 | 2013 | 김종호 | 129 | 0 | 0.277 |
3 | 2013 | 나성범 | 98 | 14 | 0.243 |
9 | 2013 | 박민우 | 11 | 0 | 0.262 |
15 | 2013 | 지석훈 | 68 | 3 | 0.220 |
0 | 2014 | 테임즈 | 152 | 37 | 0.343 |
1 | 2014 | 나성범 | 157 | 30 | 0.329 |
2 | 2014 | 박민우 | 124 | 1 | 0.298 |
3 | 2014 | 손시헌 | 90 | 5 | 0.293 |
4 | 2014 | 지석훈 | 58 | 6 | 0.274 |
5 | 2014 | 이호준 | 115 | 23 | 0.271 |
7 | 2014 | 모창민 | 110 | 16 | 0.263 |
8 | 2014 | 이종욱 | 126 | 6 | 0.288 |
0 | 2015 | 테임즈 | 180 | 47 | 0.381 |
1 | 2015 | 나성범 | 184 | 28 | 0.326 |
2 | 2015 | 박민우 | 158 | 3 | 0.304 |
3 | 2015 | 이호준 | 132 | 24 | 0.294 |
4 | 2015 | 김종호 | 125 | 4 | 0.295 |
6 | 2015 | 손시헌 | 108 | 13 | 0.245 |
7 | 2015 | 이종욱 | 118 | 5 | 0.268 |
8 | 2015 | 모창민 | 62 | 6 | 0.29 |
9 | 2015 | 지석훈 | 111 | 11 | 0.267 |
13 | 2015 | 김태군 | 107 | 6 | 0.254 |
연도
,선수명
row index로 내리기df.set_index([columns list])
In [23]:
top_df = top_df.set_index(['연도', '선수명'])
top_df
Out[23]:
안타 | 홈런 | 타율 | ||
---|---|---|---|---|
연도 | 선수명 | |||
2013 | 모창민 | 109 | 12 | 0.276 |
이호준 | 123 | 20 | 0.278 | |
김종호 | 129 | 0 | 0.277 | |
나성범 | 98 | 14 | 0.243 | |
박민우 | 11 | 0 | 0.262 | |
지석훈 | 68 | 3 | 0.220 | |
2014 | 테임즈 | 152 | 37 | 0.343 |
나성범 | 157 | 30 | 0.329 | |
박민우 | 124 | 1 | 0.298 | |
손시헌 | 90 | 5 | 0.293 | |
지석훈 | 58 | 6 | 0.274 | |
이호준 | 115 | 23 | 0.271 | |
모창민 | 110 | 16 | 0.263 | |
이종욱 | 126 | 6 | 0.288 | |
2015 | 테임즈 | 180 | 47 | 0.381 |
나성범 | 184 | 28 | 0.326 | |
박민우 | 158 | 3 | 0.304 | |
이호준 | 132 | 24 | 0.294 | |
김종호 | 125 | 4 | 0.295 | |
손시헌 | 108 | 13 | 0.245 | |
이종욱 | 118 | 5 | 0.268 | |
모창민 | 62 | 6 | 0.29 | |
지석훈 | 111 | 11 | 0.267 | |
김태군 | 107 | 6 | 0.254 |
row index
연도
> column으로 올리기NaN
을 다른 value로 채우기
In [24]:
top_df = top_df.unstack(0).fillna('-')
top_df
Out[24]:
안타 | 홈런 | 타율 | |||||||
---|---|---|---|---|---|---|---|---|---|
연도 | 2013 | 2014 | 2015 | 2013 | 2014 | 2015 | 2013 | 2014 | 2015 |
선수명 | |||||||||
김종호 | 129.0 | - | 125.0 | 0.0 | - | 4.0 | 0.277 | - | 0.295 |
김태군 | - | - | 107.0 | - | - | 6.0 | - | - | 0.254 |
나성범 | 98.0 | 157.0 | 184.0 | 14.0 | 30.0 | 28.0 | 0.243 | 0.329 | 0.326 |
모창민 | 109.0 | 110.0 | 62.0 | 12.0 | 16.0 | 6.0 | 0.276 | 0.263 | 0.290 |
박민우 | 11.0 | 124.0 | 158.0 | 0.0 | 1.0 | 3.0 | 0.262 | 0.298 | 0.304 |
손시헌 | - | 90.0 | 108.0 | - | 5.0 | 13.0 | - | 0.293 | 0.245 |
이종욱 | - | 126.0 | 118.0 | - | 6.0 | 5.0 | - | 0.288 | 0.268 |
이호준 | 123.0 | 115.0 | 132.0 | 20.0 | 23.0 | 24.0 | 0.278 | 0.271 | 0.294 |
지석훈 | 68.0 | 58.0 | 111.0 | 3.0 | 6.0 | 11.0 | 0.220 | 0.274 | 0.267 |
테임즈 | - | 152.0 | 180.0 | - | 37.0 | 47.0 | - | 0.343 | 0.381 |
5. 연도
별 팀의 총 안타
수, 총 홈런
수, 총 도루
수¶
In [25]:
df_result = bb_data.groupby('연도')[['안타', '홈런', '도루']].sum()
df_result
Out[25]:
안타 | 홈런 | 도루 | |
---|---|---|---|
연도 | |||
2013 | 814 | 63 | 133 |
2014 | 1039 | 139 | 118 |
2015 | 1380 | 158 | 201 |
In [26]:
top_df.to_excel('top_df.xlsx')
In [27]:
df_result.to_csv('df_result.csv')
'CS & DS > Numpy & Pandas' 카테고리의 다른 글
Titanic data pre-processing with pandas 판다스 타이타닉 데이터 전처리 (0) | 2022.11.13 |
---|---|
Pandas Data visualization with matplotlib 판다스 데이터 시각화 (0) | 2022.11.12 |
Pandas Data pre-processing 판다스 데이터 전처리 (0) | 2022.11.12 |
Pandas Data Loading 판다스 데이터 적재 (0) | 2022.11.05 |
Pandas DataFrame 판다스 데이터프레임 (0) | 2022.11.05 |
Comments