2019년 1월 13일 일요일

Machine Learning 에서 NaN 처리

Machine Learning 에서 NaN 처리

굉장히 고민이 되는 주제입니다.

https://stats.stackexchange.com/questions/258610/machine-learning-dealing-with-nan-values

위 답변의 결론은 NaN 값이 생성 하게 되는 방법을 (해당 항목이 왜 NaN이 된것인지)이해하고 각 기능의 예상되는 동작이 무엇인지 가정해서 진행해야 합니다. 어떤때는 0으로 치환되기도 하지만 어떤 경우에는 다른값 의미가 되어야 합니다. 그것은 해당 항목에 따라 면밀히 살펴보고 진행하여야 합니다.

어떤 값으로 변경해야 할지 모르기 때문에 다른 값으로 변경하는 예제를 만들어 두었습니다.

1. NaN 값을 -999 값으로 변경하기 pytorch tensor

import pandas as pd

dataset = pd.read_csv("train.tsv", delimiter='\t', header=0)
print(dataset.info(verbose=True))

import torch
one_hot_encoded = pd.get_dummies(dataset) 
torch_tensor = torch.from_numpy(one_hot_encoded.values)
print(torch_tensor)

torch_tensor[torch_tensor != torch_tensor] = -999
print(torch_tensor)

NaN텐서의 값을 변경하는 코드
torch_tensor[torch_tensor != torch_tensor] = -999

입력 데이터
0 1 지역 3 4
NaN 0.3160718715457761 광주 0.618074061962662 부산
0.4779143261004096 0.7640950473377978 인천 0.7554662967547567 인천
0.46356805076582885 0.5837447431729355 대전 0.793675978965779 광주
0.5695109222857196 0.05089301078346342 인천 0.9556152127770076 부산
0.04493729261707624 0.14316706161067427 경기 0.3853064558624778 울산
0.4211392967613088 0.4223696769241083 울산 0.5668579921124862 광주
0.6968309725237914 0.9771633054896907 서울 0.8357267917293922 경기
0.11353740126056755 0.7601654905557846 대전 0.743158407293178 부산
0.22370034270270966 0.3115915771469119 대전 0.11848968372403645 부산
0.137646137601257 0.600286886461799 광주 0.7007352606121582 강원
0.031428666050948184 0.39108944068098905 대전 0.8733145643417124 강원
0.9964849451141898 0.1515641318053479 인천 0.5335673749065628 인천
0.22542471556473298 0.8561772376533481 서울 0.9362096685200896 울산
0.4686621433360696 0.17537990374522128 대구 0.3499523151304561 울산
0.046060811241397714 0.8299155100569963 경기 0.21535901604117658 경기
0.1899909553960777 0.21936448957471155 인천 0.6575452140509177 경기
0.41758513381425333 0.42277109702047366 서울 0.8529515809615816 부산
0.3197992908993763 NaN 강원 0.4037015504523124 대구
0.0562629654450455 0.551939153390536 인천 0.9260164254116474 세종
0.587953265713976 0.6413981811587487 대구 0.023584307830762707 대전

결과
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 20 entries, 0 to 19
Data columns (total 5 columns):
0     19 non-null float64
1     19 non-null float64
지역    20 non-null object
3     20 non-null float64
4     20 non-null object
dtypes: float64(3), object(2)
memory usage: 880.0+ bytes
None
tensor([[    nan,  0.3161,  0.6181,  0.0000,  0.0000,  1.0000,  0.0000,
          0.0000,  0.0000,  0.0000,  0.0000,  0.0000,  0.0000,  0.0000,
          0.0000,  0.0000,  1.0000,  0.0000,  0.0000,  0.0000],
        [ 0.4779,  0.7641,  0.7555,  0.0000,  0.0000,  0.0000,  0.0000,
          0.0000,  0.0000,  0.0000,  1.0000,  0.0000,  0.0000,  0.0000,
          0.0000,  0.0000,  0.0000,  0.0000,  0.0000,  1.0000],
        [ 0.4636,  0.5837,  0.7937,  0.0000,  0.0000,  0.0000,  0.0000,
          1.0000,  0.0000,  0.0000,  0.0000,  0.0000,  0.0000,  1.0000,
          0.0000,  0.0000,  0.0000,  0.0000,  0.0000,  0.0000],
        [ 0.5695,  0.0509,  0.9556,  0.0000,  0.0000,  0.0000,  0.0000,
          0.0000,  0.0000,  0.0000,  1.0000,  0.0000,  0.0000,  0.0000,
          0.0000,  0.0000,  1.0000,  0.0000,  0.0000,  0.0000],
        [ 0.0449,  0.1432,  0.3853,  0.0000,  1.0000,  0.0000,  0.0000,
          0.0000,  0.0000,  0.0000,  0.0000,  0.0000,  0.0000,  0.0000,
          0.0000,  0.0000,  0.0000,  0.0000,  1.0000,  0.0000],
        [ 0.4211,  0.4224,  0.5669,  0.0000,  0.0000,  0.0000,  0.0000,
          0.0000,  0.0000,  1.0000,  0.0000,  0.0000,  0.0000,  1.0000,
          0.0000,  0.0000,  0.0000,  0.0000,  0.0000,  0.0000],
        [ 0.6968,  0.9772,  0.8357,  0.0000,  0.0000,  0.0000,  0.0000,
          0.0000,  1.0000,  0.0000,  0.0000,  0.0000,  1.0000,  0.0000,
          0.0000,  0.0000,  0.0000,  0.0000,  0.0000,  0.0000],
        [ 0.1135,  0.7602,  0.7432,  0.0000,  0.0000,  0.0000,  0.0000,
          1.0000,  0.0000,  0.0000,  0.0000,  0.0000,  0.0000,  0.0000,
          0.0000,  0.0000,  1.0000,  0.0000,  0.0000,  0.0000],
        [ 0.2237,  0.3116,  0.1185,  0.0000,  0.0000,  0.0000,  0.0000,
          1.0000,  0.0000,  0.0000,  0.0000,  0.0000,  0.0000,  0.0000,
          0.0000,  0.0000,  1.0000,  0.0000,  0.0000,  0.0000],
        [ 0.1376,  0.6003,  0.7007,  0.0000,  0.0000,  1.0000,  0.0000,
          0.0000,  0.0000,  0.0000,  0.0000,  1.0000,  0.0000,  0.0000,
          0.0000,  0.0000,  0.0000,  0.0000,  0.0000,  0.0000],
        [ 0.0314,  0.3911,  0.8733,  0.0000,  0.0000,  0.0000,  0.0000,
          1.0000,  0.0000,  0.0000,  0.0000,  1.0000,  0.0000,  0.0000,
          0.0000,  0.0000,  0.0000,  0.0000,  0.0000,  0.0000],
        [ 0.9965,  0.1516,  0.5336,  0.0000,  0.0000,  0.0000,  0.0000,
          0.0000,  0.0000,  0.0000,  1.0000,  0.0000,  0.0000,  0.0000,
          0.0000,  0.0000,  0.0000,  0.0000,  0.0000,  1.0000],
        [ 0.2254,  0.8562,  0.9362,  0.0000,  0.0000,  0.0000,  0.0000,
          0.0000,  1.0000,  0.0000,  0.0000,  0.0000,  0.0000,  0.0000,
          0.0000,  0.0000,  0.0000,  0.0000,  1.0000,  0.0000],
        [ 0.4687,  0.1754,  0.3500,  0.0000,  0.0000,  0.0000,  1.0000,
          0.0000,  0.0000,  0.0000,  0.0000,  0.0000,  0.0000,  0.0000,
          0.0000,  0.0000,  0.0000,  0.0000,  1.0000,  0.0000],
        [ 0.0461,  0.8299,  0.2154,  0.0000,  1.0000,  0.0000,  0.0000,
          0.0000,  0.0000,  0.0000,  0.0000,  0.0000,  1.0000,  0.0000,
          0.0000,  0.0000,  0.0000,  0.0000,  0.0000,  0.0000],
        [ 0.1900,  0.2194,  0.6575,  0.0000,  0.0000,  0.0000,  0.0000,
          0.0000,  0.0000,  0.0000,  1.0000,  0.0000,  1.0000,  0.0000,
          0.0000,  0.0000,  0.0000,  0.0000,  0.0000,  0.0000],
        [ 0.4176,  0.4228,  0.8530,  0.0000,  0.0000,  0.0000,  0.0000,
          0.0000,  1.0000,  0.0000,  0.0000,  0.0000,  0.0000,  0.0000,
          0.0000,  0.0000,  1.0000,  0.0000,  0.0000,  0.0000],
        [ 0.3198,     nan,  0.4037,  1.0000,  0.0000,  0.0000,  0.0000,
          0.0000,  0.0000,  0.0000,  0.0000,  0.0000,  0.0000,  0.0000,
          1.0000,  0.0000,  0.0000,  0.0000,  0.0000,  0.0000],
        [ 0.0563,  0.5519,  0.9260,  0.0000,  0.0000,  0.0000,  0.0000,
          0.0000,  0.0000,  0.0000,  1.0000,  0.0000,  0.0000,  0.0000,
          0.0000,  0.0000,  0.0000,  1.0000,  0.0000,  0.0000],
        [ 0.5880,  0.6414,  0.0236,  0.0000,  0.0000,  0.0000,  1.0000,
          0.0000,  0.0000,  0.0000,  0.0000,  0.0000,  0.0000,  0.0000,
          0.0000,  1.0000,  0.0000,  0.0000,  0.0000,  0.0000]], dtype=torch.float64)
tensor([[-999.0000,    0.3161,    0.6181,    0.0000,    0.0000,    1.0000,
            0.0000,    0.0000,    0.0000,    0.0000,    0.0000,    0.0000,
            0.0000,    0.0000,    0.0000,    0.0000,    1.0000,    0.0000,
            0.0000,    0.0000],
        [   0.4779,    0.7641,    0.7555,    0.0000,    0.0000,    0.0000,
            0.0000,    0.0000,    0.0000,    0.0000,    1.0000,    0.0000,
            0.0000,    0.0000,    0.0000,    0.0000,    0.0000,    0.0000,
            0.0000,    1.0000],
        [   0.4636,    0.5837,    0.7937,    0.0000,    0.0000,    0.0000,
            0.0000,    1.0000,    0.0000,    0.0000,    0.0000,    0.0000,
            0.0000,    1.0000,    0.0000,    0.0000,    0.0000,    0.0000,
            0.0000,    0.0000],
        [   0.5695,    0.0509,    0.9556,    0.0000,    0.0000,    0.0000,
            0.0000,    0.0000,    0.0000,    0.0000,    1.0000,    0.0000,
            0.0000,    0.0000,    0.0000,    0.0000,    1.0000,    0.0000,
            0.0000,    0.0000],
        [   0.0449,    0.1432,    0.3853,    0.0000,    1.0000,    0.0000,
            0.0000,    0.0000,    0.0000,    0.0000,    0.0000,    0.0000,
            0.0000,    0.0000,    0.0000,    0.0000,    0.0000,    0.0000,
            1.0000,    0.0000],
        [   0.4211,    0.4224,    0.5669,    0.0000,    0.0000,    0.0000,
            0.0000,    0.0000,    0.0000,    1.0000,    0.0000,    0.0000,
            0.0000,    1.0000,    0.0000,    0.0000,    0.0000,    0.0000,
            0.0000,    0.0000],
        [   0.6968,    0.9772,    0.8357,    0.0000,    0.0000,    0.0000,
            0.0000,    0.0000,    1.0000,    0.0000,    0.0000,    0.0000,
            1.0000,    0.0000,    0.0000,    0.0000,    0.0000,    0.0000,
            0.0000,    0.0000],
        [   0.1135,    0.7602,    0.7432,    0.0000,    0.0000,    0.0000,
            0.0000,    1.0000,    0.0000,    0.0000,    0.0000,    0.0000,
            0.0000,    0.0000,    0.0000,    0.0000,    1.0000,    0.0000,
            0.0000,    0.0000],
        [   0.2237,    0.3116,    0.1185,    0.0000,    0.0000,    0.0000,
            0.0000,    1.0000,    0.0000,    0.0000,    0.0000,    0.0000,
            0.0000,    0.0000,    0.0000,    0.0000,    1.0000,    0.0000,
            0.0000,    0.0000],
        [   0.1376,    0.6003,    0.7007,    0.0000,    0.0000,    1.0000,
            0.0000,    0.0000,    0.0000,    0.0000,    0.0000,    1.0000,
            0.0000,    0.0000,    0.0000,    0.0000,    0.0000,    0.0000,
            0.0000,    0.0000],
        [   0.0314,    0.3911,    0.8733,    0.0000,    0.0000,    0.0000,
            0.0000,    1.0000,    0.0000,    0.0000,    0.0000,    1.0000,
            0.0000,    0.0000,    0.0000,    0.0000,    0.0000,    0.0000,
            0.0000,    0.0000],
        [   0.9965,    0.1516,    0.5336,    0.0000,    0.0000,    0.0000,
            0.0000,    0.0000,    0.0000,    0.0000,    1.0000,    0.0000,
            0.0000,    0.0000,    0.0000,    0.0000,    0.0000,    0.0000,
            0.0000,    1.0000],
        [   0.2254,    0.8562,    0.9362,    0.0000,    0.0000,    0.0000,
            0.0000,    0.0000,    1.0000,    0.0000,    0.0000,    0.0000,
            0.0000,    0.0000,    0.0000,    0.0000,    0.0000,    0.0000,
            1.0000,    0.0000],
        [   0.4687,    0.1754,    0.3500,    0.0000,    0.0000,    0.0000,
            1.0000,    0.0000,    0.0000,    0.0000,    0.0000,    0.0000,
            0.0000,    0.0000,    0.0000,    0.0000,    0.0000,    0.0000,
            1.0000,    0.0000],
        [   0.0461,    0.8299,    0.2154,    0.0000,    1.0000,    0.0000,
            0.0000,    0.0000,    0.0000,    0.0000,    0.0000,    0.0000,
            1.0000,    0.0000,    0.0000,    0.0000,    0.0000,    0.0000,
            0.0000,    0.0000],
        [   0.1900,    0.2194,    0.6575,    0.0000,    0.0000,    0.0000,
            0.0000,    0.0000,    0.0000,    0.0000,    1.0000,    0.0000,
            1.0000,    0.0000,    0.0000,    0.0000,    0.0000,    0.0000,
            0.0000,    0.0000],
        [   0.4176,    0.4228,    0.8530,    0.0000,    0.0000,    0.0000,
            0.0000,    0.0000,    1.0000,    0.0000,    0.0000,    0.0000,
            0.0000,    0.0000,    0.0000,    0.0000,    1.0000,    0.0000,
            0.0000,    0.0000],
        [   0.3198, -999.0000,    0.4037,    1.0000,    0.0000,    0.0000,
            0.0000,    0.0000,    0.0000,    0.0000,    0.0000,    0.0000,
            0.0000,    0.0000,    1.0000,    0.0000,    0.0000,    0.0000,
            0.0000,    0.0000],
        [   0.0563,    0.5519,    0.9260,    0.0000,    0.0000,    0.0000,
            0.0000,    0.0000,    0.0000,    0.0000,    1.0000,    0.0000,
            0.0000,    0.0000,    0.0000,    0.0000,    0.0000,    1.0000,
            0.0000,    0.0000],
        [   0.5880,    0.6414,    0.0236,    0.0000,    0.0000,    0.0000,
            1.0000,    0.0000,    0.0000,    0.0000,    0.0000,    0.0000,
            0.0000,    0.0000,    0.0000,    1.0000,    0.0000,    0.0000,
            0.0000,    0.0000]], dtype=torch.float64)

참고로 NaN 인식하는 스트링 값은 nan,NaN,NA 3가지 이며 text에 해당 string이 있을때 숫자로 인식(numpy.nan)하게 됩니다.

2. pandas fillna 이용

>>> df = pd.DataFrame([[np.nan, 2, np.nan, 0],
...                    [3, 4, np.nan, 1],
...                    [np.nan, np.nan, np.nan, 5],
...                    [np.nan, 3, np.nan, 4]],
...                    columns=list('ABCD'))
>>> df
     A    B   C  D
0  NaN  2.0 NaN  0
1  3.0  4.0 NaN  1
2  NaN  NaN NaN  5
3  NaN  3.0 NaN  4
>>> df.fillna(0)
    A   B   C   D
0   0.0 2.0 0.0 0
1   3.0 4.0 0.0 1
2   0.0 0.0 0.0 5
3   0.0 3.0 0.0 4

3. 범주형 데이터 NaN 처리 방법

범주형이란 선택 사항이 유한한 집합에 속한 하나 이상의 이산 항목을 표현하는 입력 특성을 가리킵니다, 범주형 데이터에는 논리적 순서가 없을 수도 있습니다. 예를 들면, 범주형에는 성별, 지역, 결제 방법이 있습니다. 서울=1, 광주=2, 인천=3 으로 표현되더라도 해당 항목은 범주형에 해당됩니다. 인천(3)-광주(2)=서울(1)의 의미를 지니지 않기 때문입니다. 그러면 이러한 범주형 데이터는 Machine Learning에서 어떻게 해야할까요?
아래 좋은 자료가 있습니다.
https://blog.myyellowroad.com/using-categorical-data-in-machine-learning-with-python-from-dummy-variables-to-deep-category-66041f734512
https://blog.myyellowroad.com/using-categorical-data-in-machine-learning-with-python-from-dummy-variables-to-deep-category-42fd0a43b009

카테고리 데이터가 많지 않다면 one hot encoding 을 사용하는 방법입니다. 즉 인천에 차원 하나를 할당하고 서울에도 차원 하나를 할당 하는 방식입니다. pandas에 get_dummies 함수를 이용하면 쉽게 변환이 가능합니다.

입력 데이터
0 1 지역 3 4
NaN 0.3160718715457761 광주 0.618074061962662 부산
0.4779143261004096 0.7640950473377978 인천 0.7554662967547567 인천
0.46356805076582885 0.5837447431729355 대전 0.793675978965779 광주
0.5695109222857196 0.05089301078346342 인천 0.9556152127770076 부산
0.04493729261707624 0.14316706161067427 경기 0.3853064558624778 울산
0.4211392967613088 0.4223696769241083 울산 0.5668579921124862 광주
0.6968309725237914 0.9771633054896907 서울 0.8357267917293922 경기
0.11353740126056755 0.7601654905557846 대전 0.743158407293178 부산
0.22370034270270966 0.3115915771469119 대전 0.11848968372403645 부산
0.137646137601257 0.600286886461799 광주 0.7007352606121582 강원
0.031428666050948184 0.39108944068098905 대전 0.8733145643417124 강원
0.9964849451141898 0.1515641318053479 인천 0.5335673749065628 인천
0.22542471556473298 0.8561772376533481 서울 0.9362096685200896 울산
0.4686621433360696 0.17537990374522128 대구 0.3499523151304561 울산
0.046060811241397714 0.8299155100569963 경기 0.21535901604117658 경기
0.1899909553960777 0.21936448957471155 인천 0.6575452140509177 NaN
0.41758513381425333 0.42277109702047366 서울 0.8529515809615816 부산
0.3197992908993763 NaN 강원 0.4037015504523124 대구
0.0562629654450455 0.551939153390536 인천 0.9260164254116474 세종
0.587953265713976 0.6413981811587487 대구 0.023584307830762707 대전

코드에 dummy_na=True 옵션을 넣으면 다음 코드에 의해서  pd.get_dummies(dataset,dummy_na=True),  4_nan와 같이 마지막 항목에 nan 처리를 위한 차원이 늘어나게 됩니다.
import pandas as pd

dataset = pd.read_csv("train.tsv", delimiter='\t', header=0)
print(dataset.info(verbose=True))
print(dataset)

import torch
one_hot_encoded = pd.get_dummies(dataset,dummy_na=True) 
print(one_hot_encoded)
print(one_hot_encoded.info(verbose=True))

결과
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 20 entries, 0 to 19
Data columns (total 5 columns):
0     19 non-null float64
1     19 non-null float64
지역    20 non-null object
3     20 non-null float64
4     19 non-null object
dtypes: float64(3), object(2)
memory usage: 880.0+ bytes
None
           0         1  지역         3    4
0        NaN  0.316072  광주  0.618074   부산
1   0.477914  0.764095  인천  0.755466   인천
2   0.463568  0.583745  대전  0.793676   광주
3   0.569511  0.050893  인천  0.955615   부산
4   0.044937  0.143167  경기  0.385306   울산
5   0.421139  0.422370  울산  0.566858   광주
6   0.696831  0.977163  서울  0.835727   경기
7   0.113537  0.760165  대전  0.743158   부산
8   0.223700  0.311592  대전  0.118490   부산
9   0.137646  0.600287  광주  0.700735   강원
10  0.031429  0.391089  대전  0.873315   강원
11  0.996485  0.151564  인천  0.533567   인천
12  0.225425  0.856177  서울  0.936210   울산
13  0.468662  0.175380  대구  0.349952   울산
14  0.046061  0.829916  경기  0.215359   경기
15  0.189991  0.219364  인천  0.657545  NaN
16  0.417585  0.422771  서울  0.852952   부산
17  0.319799       NaN  강원  0.403702   대구
18  0.056263  0.551939  인천  0.926016   세종
19  0.587953  0.641398  대구  0.023584   대전
           0         1         3  지역_강원  지역_경기  지역_광주  지역_대구  지역_대전  지역_서울  지역_울산  ...    4_강원  4_경기  4_광주  4_대구  4_대전  4_부산  4_세종  4_울산  4_인천  4_nan
0        NaN  0.316072  0.618074      0      0      1      0      0      0      0  ...       0     0     0     0     0     1     0     0     0      0
1   0.477914  0.764095  0.755466      0      0      0      0      0      0      0  ...       0     0     0     0     0     0     0     0     1      0
2   0.463568  0.583745  0.793676      0      0      0      0      1      0      0  ...       0     0     1     0     0     0     0     0     0      0
3   0.569511  0.050893  0.955615      0      0      0      0      0      0      0  ...       0     0     0     0     0     1     0     0     0      0
4   0.044937  0.143167  0.385306      0      1      0      0      0      0      0  ...       0     0     0     0     0     0     0     1     0      0
5   0.421139  0.422370  0.566858      0      0      0      0      0      0      1  ...       0     0     1     0     0     0     0     0     0      0
6   0.696831  0.977163  0.835727      0      0      0      0      0      1      0  ...       0     1     0     0     0     0     0     0     0      0
7   0.113537  0.760165  0.743158      0      0      0      0      1      0      0  ...       0     0     0     0     0     1     0     0     0      0
8   0.223700  0.311592  0.118490      0      0      0      0      1      0      0  ...       0     0     0     0     0     1     0     0     0      0
9   0.137646  0.600287  0.700735      0      0      1      0      0      0      0  ...       1     0     0     0     0     0     0     0     0      0
10  0.031429  0.391089  0.873315      0      0      0      0      1      0      0  ...       1     0     0     0     0     0     0     0     0      0
11  0.996485  0.151564  0.533567      0      0      0      0      0      0      0  ...       0     0     0     0     0     0     0     0     1      0
12  0.225425  0.856177  0.936210      0      0      0      0      0      1      0  ...       0     0     0     0     0     0     0     1     0      0
13  0.468662  0.175380  0.349952      0      0      0      1      0      0      0  ...       0     0     0     0     0     0     0     1     0      0
14  0.046061  0.829916  0.215359      0      1      0      0      0      0      0  ...       0     1     0     0     0     0     0     0     0      0
15  0.189991  0.219364  0.657545      0      0      0      0      0      0      0  ...       0     0     0     0     0     0     0     0     0      1
16  0.417585  0.422771  0.852952      0      0      0      0      0      1      0  ...       0     0     0     0     0     1     0     0     0      0
17  0.319799       NaN  0.403702      1      0      0      0      0      0      0  ...       0     0     0     1     0     0     0     0     0      0
18  0.056263  0.551939  0.926016      0      0      0      0      0      0      0  ...       0     0     0     0     0     0     1     0     0      0
19  0.587953  0.641398  0.023584      0      0      0      1      0      0      0  ...       0     0     0     0     1     0     0     0     0      0

[20 rows x 22 columns]
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 20 entries, 0 to 19
Data columns (total 22 columns):
0         19 non-null float64
1         19 non-null float64
3         20 non-null float64
지역_강원     20 non-null uint8
지역_경기     20 non-null uint8
지역_광주     20 non-null uint8
지역_대구     20 non-null uint8
지역_대전     20 non-null uint8
지역_서울     20 non-null uint8
지역_울산     20 non-null uint8
지역_인천     20 non-null uint8
지역_nan    20 non-null uint8
4_강원      20 non-null uint8
4_경기      20 non-null uint8
4_광주      20 non-null uint8
4_대구      20 non-null uint8
4_대전      20 non-null uint8
4_부산      20 non-null uint8
4_세종      20 non-null uint8
4_울산      20 non-null uint8
4_인천      20 non-null uint8
4_nan     20 non-null uint8
dtypes: float64(3), uint8(19)
memory usage: 940.0 bytes
None



댓글 없음:

댓글 쓰기