8_판다스4
import warnings
warnings.filterwarnings('ignore')
from IPython.display import Image
import numpy as np
import pandas as pd
#데이터에 누락값이 없으면 좋켔지만 누락값은 대부분의
#데이터에 존재하곡 깔끔한 데이터를 위해 누락값을
#처리하는 것이 매우 중요하다.
#누락값은 NaN으로 표기되며 누락값을 파이썬에서 사용하려면
#넘파이 라이브러리가 필요하다.
#누락값을 사용하기 위해 넘파이 누락값을 불러온다.
from numpy import NaN, NAN, nan
#누락값은 0,''과 같은 값과는 다른 개념으로 데이터
#자체가 없다는 것을 의미한다.
#=>NULL=>'같다'라는 개념도 존재하지 않는다.
print(NaN == True)
print(NaN == False)
print(NaN == 0)
print(NaN == '')
False
False
False
False
#누락값은 값 자체가 없기 때문에 자기 자신과
#비교해도 False가 출력된다.
print(NaN == NaN)
print(NAN == NAN)
print(nan == nan)
False
False
False
#판다스에는 누락값을 확인하는 isnull(), isna() 함수가 있고
#누락값이면 True, 그렇지 않으면 False가 리턴된다.
print(pd.isnull(NaN))
print(pd.isna(nan))
print(pd.isnull(0))
print(pd.isna(0))
print(pd.isnull(''))
print(pd.isna(''))
True
True
False
False
False
False
#Cases_* => 발병자 수, Death_* => 사망자 수
ebola = pd.read_csv('./data/country_timeseries.csv')
ebola
Date | Day | Cases_Guinea | Cases_Liberia | Cases_SierraLeone | Cases_Nigeria | Cases_Senegal | Cases_UnitedStates | Cases_Spain | Cases_Mali | Deaths_Guinea | Deaths_Liberia | Deaths_SierraLeone | Deaths_Nigeria | Deaths_Senegal | Deaths_UnitedStates | Deaths_Spain | Deaths_Mali | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 1/5/2015 | 289 | 2776.0 | NaN | 10030.0 | NaN | NaN | NaN | NaN | NaN | 1786.0 | NaN | 2977.0 | NaN | NaN | NaN | NaN | NaN |
1 | 1/4/2015 | 288 | 2775.0 | NaN | 9780.0 | NaN | NaN | NaN | NaN | NaN | 1781.0 | NaN | 2943.0 | NaN | NaN | NaN | NaN | NaN |
2 | 1/3/2015 | 287 | 2769.0 | 8166.0 | 9722.0 | NaN | NaN | NaN | NaN | NaN | 1767.0 | 3496.0 | 2915.0 | NaN | NaN | NaN | NaN | NaN |
3 | 1/2/2015 | 286 | NaN | 8157.0 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 3496.0 | NaN | NaN | NaN | NaN | NaN | NaN |
4 | 12/31/2014 | 284 | 2730.0 | 8115.0 | 9633.0 | NaN | NaN | NaN | NaN | NaN | 1739.0 | 3471.0 | 2827.0 | NaN | NaN | NaN | NaN | NaN |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
117 | 3/27/2014 | 5 | 103.0 | 8.0 | 6.0 | NaN | NaN | NaN | NaN | NaN | 66.0 | 6.0 | 5.0 | NaN | NaN | NaN | NaN | NaN |
118 | 3/26/2014 | 4 | 86.0 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 62.0 | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
119 | 3/25/2014 | 3 | 86.0 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 60.0 | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
120 | 3/24/2014 | 2 | 86.0 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 59.0 | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
121 | 3/22/2014 | 0 | 49.0 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 29.0 | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
122 rows × 18 columns
#넘파이의 count_nonzero() 함수는 배열에서 0이나 False가 아닌
#데이터의 개수를 센다.
print(np.count_nonzero([False, 0]))
print(np.count_nonzero([False, 0, True]))
print(np.count_nonzero([False, 0, True, 1, 999,NaN]))
print()
#isnull() 함수는 누락값이면 True, 그렇지 않으면 False를
#리턴한다.
print(np.count_nonzero(ebola.isnull()))
print(np.count_nonzero(ebola.isna()))
print()
print(np.count_nonzero(ebola['Cases_Guinea'].isnull()))
print(np.count_nonzero(ebola['Cases_Guinea'].isna()))
print(np.count_nonzero(ebola.Cases_Guinea.isna()))
print()
#count() 함수는 NaN이 아닌 데이터의 개수(122-29=93)를 센다.
print(ebola['Cases_Guinea'].count())
print()
#count()함수로 누락값(NaN)이 아닌 데이터의 개수를 알 수 있다.
print(ebola.count())
0
1
4
1214
1214
29
29
29
93
Date 122
Day 122
Cases_Guinea 93
Cases_Liberia 83
Cases_SierraLeone 87
Cases_Nigeria 38
Cases_Senegal 25
Cases_UnitedStates 18
Cases_Spain 16
Cases_Mali 12
Deaths_Guinea 92
Deaths_Liberia 81
Deaths_SierraLeone 87
Deaths_Nigeria 38
Deaths_Senegal 22
Deaths_UnitedStates 18
Deaths_Spain 16
Deaths_Mali 12
dtype: int64
ebola.isnull()
Date | Day | Cases_Guinea | Cases_Liberia | Cases_SierraLeone | Cases_Nigeria | Cases_Senegal | Cases_UnitedStates | Cases_Spain | Cases_Mali | Deaths_Guinea | Deaths_Liberia | Deaths_SierraLeone | Deaths_Nigeria | Deaths_Senegal | Deaths_UnitedStates | Deaths_Spain | Deaths_Mali | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | False | False | False | True | False | True | True | True | True | True | False | True | False | True | True | True | True | True |
1 | False | False | False | True | False | True | True | True | True | True | False | True | False | True | True | True | True | True |
2 | False | False | False | False | False | True | True | True | True | True | False | False | False | True | True | True | True | True |
3 | False | False | True | False | True | True | True | True | True | True | True | False | True | True | True | True | True | True |
4 | False | False | False | False | False | True | True | True | True | True | False | False | False | True | True | True | True | True |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
117 | False | False | False | False | False | True | True | True | True | True | False | False | False | True | True | True | True | True |
118 | False | False | False | True | True | True | True | True | True | True | False | True | True | True | True | True | True | True |
119 | False | False | False | True | True | True | True | True | True | True | False | True | True | True | True | True | True | True |
120 | False | False | False | True | True | True | True | True | True | True | False | True | True | True | True | True | True | True |
121 | False | False | False | True | True | True | True | True | True | True | False | True | True | True | True | True | True | True |
122 rows × 18 columns
print(ebola.shape)
print('ebola 데이터는 {}행 {}열 입니다.'.format(ebola.shape[0], ebola.shape[1]))
num_row = ebola.shape[0]
num_missing = num_row-ebola.count()
num_missing
(122, 18)
ebola 데이터는 122행 18열 입니다.
Date 0
Day 0
Cases_Guinea 29
Cases_Liberia 39
Cases_SierraLeone 35
Cases_Nigeria 84
Cases_Senegal 97
Cases_UnitedStates 104
Cases_Spain 106
Cases_Mali 110
Deaths_Guinea 30
Deaths_Liberia 41
Deaths_SierraLeone 35
Deaths_Nigeria 84
Deaths_Senegal 100
Deaths_UnitedStates 104
Deaths_Spain 106
Deaths_Mali 110
dtype: int64
#value_counts() 함수는 지정한 열의 데이터
#출현 빈도수를 얻어온다.
#=>기본값으로 NaN은 무시하고 출현 빈도수를
# 계산한다.
print(ebola['Cases_Guinea'].value_counts())
print()
print(ebola.Cases_Guinea.value_counts())
86.0 3
112.0 2
390.0 2
495.0 2
2597.0 1
..
235.0 1
231.0 1
226.0 1
224.0 1
2776.0 1
Name: Cases_Guinea, Length: 88, dtype: int64
86.0 3
112.0 2
390.0 2
495.0 2
2597.0 1
..
235.0 1
231.0 1
226.0 1
224.0 1
2776.0 1
Name: Cases_Guinea, Length: 88, dtype: int64
#value_counts() 함수에 dropna 옵션을 False로
#지정하면 NaN 출현 빈도수를 계산한다.
print(ebola.Cases_Guinea.value_counts(dropna = False))
NaN 29
86.0 3
495.0 2
112.0 2
390.0 2
..
235.0 1
231.0 1
226.0 1
224.0 1
2776.0 1
Name: Cases_Guinea, Length: 89, dtype: int64
#기초 통게 계산 함수의 skipna 옵션의 기본값은
#True이고 NaN값을 무시한다. NaN도 취급하게 하려면
#skipna옵션을 False로 설정하면 된다.
#일반 데이터와 nan을 계산하면 결과는 nan이다.
print(ebola.Cases_Guinea.sum())
print(ebola.Cases_Guinea.sum(skipna=True))
print(ebola.Cases_Guinea.sum(skipna=False))
print(ebola.Cases_Guinea.mean())
print(ebola.Cases_Guinea.max())
print(ebola.Cases_Guinea.min())
#단 count함수는 skipna라는 옵션을 사용할 수 없다.
print(ebola.Cases_Guinea.count())
84729.0
84729.0
nan
911.0645161290323
2776.0
49.0
93
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-41-00b17816ecb7> in <module>
10 print(ebola.Cases_Guinea.min())
11 print(ebola.Cases_Guinea.count())
---> 12 print(ebola.Cases_Guinea.count(skipna=False))
13 #단 count함수는 skipna라는 옵션을 사용할 수 없다.
TypeError: count() got an unexpected keyword argument 'skipna'
누락값 처리하기
#ebola.loc[:10, ['Date', 'Day', 'Cases_Guinea','Cases_Liberia','Cases_SierraLeone']]
ebola.iloc[:10, :5]
Date | Day | Cases_Guinea | Cases_Liberia | Cases_SierraLeone | |
---|---|---|---|---|---|
0 | 1/5/2015 | 289 | 2776.0 | NaN | 10030.0 |
1 | 1/4/2015 | 288 | 2775.0 | NaN | 9780.0 |
2 | 1/3/2015 | 287 | 2769.0 | 8166.0 | 9722.0 |
3 | 1/2/2015 | 286 | NaN | 8157.0 | NaN |
4 | 12/31/2014 | 284 | 2730.0 | 8115.0 | 9633.0 |
5 | 12/28/2014 | 281 | 2706.0 | 8018.0 | 9446.0 |
6 | 12/27/2014 | 280 | 2695.0 | NaN | 9409.0 |
7 | 12/24/2014 | 277 | 2630.0 | 7977.0 | 9203.0 |
8 | 12/21/2014 | 273 | 2597.0 | NaN | 9004.0 |
9 | 12/20/2014 | 272 | 2571.0 | 7862.0 | 8939.0 |
#fillna()함수의 인수로 특정 데이터를 지정하면
#누락값을 지정한 값으로 변경한다.
ebola.iloc[:10, :5].fillna(0)
Date | Day | Cases_Guinea | Cases_Liberia | Cases_SierraLeone | |
---|---|---|---|---|---|
0 | 1/5/2015 | 289 | 2776.0 | 0.0 | 10030.0 |
1 | 1/4/2015 | 288 | 2775.0 | 0.0 | 9780.0 |
2 | 1/3/2015 | 287 | 2769.0 | 8166.0 | 9722.0 |
3 | 1/2/2015 | 286 | 0.0 | 8157.0 | 0.0 |
4 | 12/31/2014 | 284 | 2730.0 | 8115.0 | 9633.0 |
5 | 12/28/2014 | 281 | 2706.0 | 8018.0 | 9446.0 |
6 | 12/27/2014 | 280 | 2695.0 | 0.0 | 9409.0 |
7 | 12/24/2014 | 277 | 2630.0 | 7977.0 | 9203.0 |
8 | 12/21/2014 | 273 | 2597.0 | 0.0 | 9004.0 |
9 | 12/20/2014 | 272 | 2571.0 | 7862.0 | 8939.0 |
#fillna()함수의 method옵션을 'ffill'로 지정하면
#누락값이 나타나기 바로 전의 값으로 변경한다.
#이전 값이 존재하지 않으면 nan를 변경하지 못한다.
ebola.iloc[:10, :5].fillna(method='ffill')
Date | Day | Cases_Guinea | Cases_Liberia | Cases_SierraLeone | |
---|---|---|---|---|---|
0 | 1/5/2015 | 289 | 2776.0 | NaN | 10030.0 |
1 | 1/4/2015 | 288 | 2775.0 | NaN | 9780.0 |
2 | 1/3/2015 | 287 | 2769.0 | 8166.0 | 9722.0 |
3 | 1/2/2015 | 286 | 2769.0 | 8157.0 | 9722.0 |
4 | 12/31/2014 | 284 | 2730.0 | 8115.0 | 9633.0 |
5 | 12/28/2014 | 281 | 2706.0 | 8018.0 | 9446.0 |
6 | 12/27/2014 | 280 | 2695.0 | 8018.0 | 9409.0 |
7 | 12/24/2014 | 277 | 2630.0 | 7977.0 | 9203.0 |
8 | 12/21/2014 | 273 | 2597.0 | 7977.0 | 9004.0 |
9 | 12/20/2014 | 272 | 2571.0 | 7862.0 | 8939.0 |
#fillna()함수의 method옵션을 'bfill'로 지정하면
#누락값이 나타난 바로 다음 값으로 변경한다.
#마찬가지로 다음값이 없으면 nan를 변경하지 못한다.
ebola.iloc[:10, :5].fillna(method='bfill')
Date | Day | Cases_Guinea | Cases_Liberia | Cases_SierraLeone | |
---|---|---|---|---|---|
0 | 1/5/2015 | 289 | 2776.0 | 8166.0 | 10030.0 |
1 | 1/4/2015 | 288 | 2775.0 | 8166.0 | 9780.0 |
2 | 1/3/2015 | 287 | 2769.0 | 8166.0 | 9722.0 |
3 | 1/2/2015 | 286 | 2730.0 | 8157.0 | 9633.0 |
4 | 12/31/2014 | 284 | 2730.0 | 8115.0 | 9633.0 |
5 | 12/28/2014 | 281 | 2706.0 | 8018.0 | 9446.0 |
6 | 12/27/2014 | 280 | 2695.0 | 7977.0 | 9409.0 |
7 | 12/24/2014 | 277 | 2630.0 | 7977.0 | 9203.0 |
8 | 12/21/2014 | 273 | 2597.0 | 7862.0 | 9004.0 |
9 | 12/20/2014 | 272 | 2571.0 | 7862.0 | 8939.0 |
#interpolate()함수는 누락값 앞, 뒤에 데이터를 이용해서
#중간값(평균값)으로 누락값을 변경한다.
#이전 값이 존재하지 않으면 nan를 변경하지 못한다.
ebola.iloc[:10, :5].interpolate()
Date | Day | Cases_Guinea | Cases_Liberia | Cases_SierraLeone | |
---|---|---|---|---|---|
0 | 1/5/2015 | 289 | 2776.0 | NaN | 10030.0 |
1 | 1/4/2015 | 288 | 2775.0 | NaN | 9780.0 |
2 | 1/3/2015 | 287 | 2769.0 | 8166.0 | 9722.0 |
3 | 1/2/2015 | 286 | 2749.5 | 8157.0 | 9677.5 |
4 | 12/31/2014 | 284 | 2730.0 | 8115.0 | 9633.0 |
5 | 12/28/2014 | 281 | 2706.0 | 8018.0 | 9446.0 |
6 | 12/27/2014 | 280 | 2695.0 | 7997.5 | 9409.0 |
7 | 12/24/2014 | 277 | 2630.0 | 7977.0 | 9203.0 |
8 | 12/21/2014 | 273 | 2597.0 | 7919.5 | 9004.0 |
9 | 12/20/2014 | 272 | 2571.0 | 7862.0 | 8939.0 |
#dropna() 함수로 누락값이 포함된 행을 삭제할 수 있다.
ebola.dropna()
Date | Day | Cases_Guinea | Cases_Liberia | Cases_SierraLeone | Cases_Nigeria | Cases_Senegal | Cases_UnitedStates | Cases_Spain | Cases_Mali | Deaths_Guinea | Deaths_Liberia | Deaths_SierraLeone | Deaths_Nigeria | Deaths_Senegal | Deaths_UnitedStates | Deaths_Spain | Deaths_Mali | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
19 | 11/18/2014 | 241 | 2047.0 | 7082.0 | 6190.0 | 20.0 | 1.0 | 4.0 | 1.0 | 6.0 | 1214.0 | 2963.0 | 1267.0 | 8.0 | 0.0 | 1.0 | 0.0 | 6.0 |
ebola['Cases_Multi'] = ebola.Cases_Guinea + ebola.Cases_Liberia + ebola.Cases_SierraLeone
ebola
Date | Day | Cases_Guinea | Cases_Liberia | Cases_SierraLeone | Cases_Nigeria | Cases_Senegal | Cases_UnitedStates | Cases_Spain | Cases_Mali | Deaths_Guinea | Deaths_Liberia | Deaths_SierraLeone | Deaths_Nigeria | Deaths_Senegal | Deaths_UnitedStates | Deaths_Spain | Deaths_Mali | Cases_Multi | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 1/5/2015 | 289 | 2776.0 | NaN | 10030.0 | NaN | NaN | NaN | NaN | NaN | 1786.0 | NaN | 2977.0 | NaN | NaN | NaN | NaN | NaN | NaN |
1 | 1/4/2015 | 288 | 2775.0 | NaN | 9780.0 | NaN | NaN | NaN | NaN | NaN | 1781.0 | NaN | 2943.0 | NaN | NaN | NaN | NaN | NaN | NaN |
2 | 1/3/2015 | 287 | 2769.0 | 8166.0 | 9722.0 | NaN | NaN | NaN | NaN | NaN | 1767.0 | 3496.0 | 2915.0 | NaN | NaN | NaN | NaN | NaN | 20657.0 |
3 | 1/2/2015 | 286 | NaN | 8157.0 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 3496.0 | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
4 | 12/31/2014 | 284 | 2730.0 | 8115.0 | 9633.0 | NaN | NaN | NaN | NaN | NaN | 1739.0 | 3471.0 | 2827.0 | NaN | NaN | NaN | NaN | NaN | 20478.0 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
117 | 3/27/2014 | 5 | 103.0 | 8.0 | 6.0 | NaN | NaN | NaN | NaN | NaN | 66.0 | 6.0 | 5.0 | NaN | NaN | NaN | NaN | NaN | 117.0 |
118 | 3/26/2014 | 4 | 86.0 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 62.0 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
119 | 3/25/2014 | 3 | 86.0 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 60.0 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
120 | 3/24/2014 | 2 | 86.0 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 59.0 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
121 | 3/22/2014 | 0 | 49.0 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 29.0 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
122 rows × 19 columns
#ebola_subset = ebola.loc[:, ['Cases_Guinea','Cases_Liberia','Cases_SierraLeone','Cases_Multi']]
ebola_subset = ebola.iloc[:, [2,3,4,-1]]
ebola_subset
Cases_Guinea | Cases_Liberia | Cases_SierraLeone | Cases_Multi | |
---|---|---|---|---|
0 | 2776.0 | NaN | 10030.0 | NaN |
1 | 2775.0 | NaN | 9780.0 | NaN |
2 | 2769.0 | 8166.0 | 9722.0 | 20657.0 |
3 | NaN | 8157.0 | NaN | NaN |
4 | 2730.0 | 8115.0 | 9633.0 | 20478.0 |
... | ... | ... | ... | ... |
117 | 103.0 | 8.0 | 6.0 | 117.0 |
118 | 86.0 | NaN | NaN | NaN |
119 | 86.0 | NaN | NaN | NaN |
120 | 86.0 | NaN | NaN | NaN |
121 | 49.0 | NaN | NaN | NaN |
122 rows × 4 columns
ebola_subset_dropna = ebola_subset.dropna()
ebola_subset_dropna
Cases_Guinea | Cases_Liberia | Cases_SierraLeone | Cases_Multi | |
---|---|---|---|---|
2 | 2769.0 | 8166.0 | 9722.0 | 20657.0 |
4 | 2730.0 | 8115.0 | 9633.0 | 20478.0 |
5 | 2706.0 | 8018.0 | 9446.0 | 20170.0 |
7 | 2630.0 | 7977.0 | 9203.0 | 19810.0 |
9 | 2571.0 | 7862.0 | 8939.0 | 19372.0 |
19 | 2047.0 | 7082.0 | 6190.0 | 15319.0 |
45 | 1199.0 | 3834.0 | 2437.0 | 7470.0 |
46 | 1157.0 | 3696.0 | 2304.0 | 7157.0 |
47 | 1074.0 | 3458.0 | 2021.0 | 6553.0 |
48 | 1022.0 | 3280.0 | 1940.0 | 6242.0 |
52 | 942.0 | 2710.0 | 1673.0 | 5325.0 |
56 | 861.0 | 2081.0 | 1424.0 | 4366.0 |
57 | 812.0 | 1871.0 | 1261.0 | 3944.0 |
58 | 771.0 | 1698.0 | 1216.0 | 3685.0 |
59 | 648.0 | 1378.0 | 1026.0 | 3052.0 |
60 | 607.0 | 1082.0 | 910.0 | 2599.0 |
61 | 579.0 | 972.0 | 907.0 | 2458.0 |
62 | 543.0 | 834.0 | 848.0 | 2225.0 |
63 | 519.0 | 786.0 | 810.0 | 2115.0 |
64 | 510.0 | 670.0 | 783.0 | 1963.0 |
65 | 506.0 | 599.0 | 730.0 | 1835.0 |
66 | 495.0 | 554.0 | 717.0 | 1766.0 |
67 | 495.0 | 516.0 | 691.0 | 1702.0 |
68 | 485.0 | 468.0 | 646.0 | 1599.0 |
69 | 472.0 | 391.0 | 574.0 | 1437.0 |
70 | 460.0 | 329.0 | 533.0 | 1322.0 |
71 | 427.0 | 249.0 | 525.0 | 1201.0 |
72 | 415.0 | 224.0 | 454.0 | 1093.0 |
73 | 410.0 | 196.0 | 442.0 | 1048.0 |
74 | 411.0 | 174.0 | 397.0 | 982.0 |
75 | 406.0 | 172.0 | 386.0 | 964.0 |
76 | 409.0 | 142.0 | 337.0 | 888.0 |
77 | 408.0 | 131.0 | 305.0 | 844.0 |
78 | 412.0 | 115.0 | 252.0 | 779.0 |
79 | 413.0 | 107.0 | 239.0 | 759.0 |
86 | 351.0 | 13.0 | 89.0 | 453.0 |
89 | 328.0 | 13.0 | 79.0 | 420.0 |
90 | 291.0 | 13.0 | 50.0 | 354.0 |
91 | 281.0 | 12.0 | 16.0 | 309.0 |
92 | 258.0 | 12.0 | 0.0 | 270.0 |
93 | 248.0 | 12.0 | 0.0 | 260.0 |
94 | 233.0 | 12.0 | 0.0 | 245.0 |
95 | 236.0 | 13.0 | 0.0 | 249.0 |
96 | 235.0 | 13.0 | 0.0 | 248.0 |
97 | 231.0 | 13.0 | 0.0 | 244.0 |
98 | 226.0 | 13.0 | 0.0 | 239.0 |
109 | 159.0 | 26.0 | 2.0 | 187.0 |
110 | 158.0 | 25.0 | 2.0 | 185.0 |
111 | 151.0 | 21.0 | 2.0 | 174.0 |
112 | 143.0 | 18.0 | 2.0 | 163.0 |
113 | 127.0 | 8.0 | 2.0 | 137.0 |
114 | 122.0 | 8.0 | 2.0 | 132.0 |
116 | 112.0 | 3.0 | 2.0 | 117.0 |
117 | 103.0 | 8.0 | 6.0 | 117.0 |
댓글남기기