【초보자용 핸즈온】kaggle의 「주택 가격을 예측한다」를 1행씩 읽는다(제4회:결손치의 보완(완))

제목


  • 제1회의 내용은 이쪽
  • 제2회의 내용은 이쪽
  • 제3회의 내용은 이쪽

  • 유명한 제목인 kaggle의 「House Price」문제에 모두 도전해 가게 된 핸즈온의 내용을 메모해 가는 기획의 제4회. 해설이라기보다는 메모의 정리이기도 합니다만, 어딘가의 누군가를 위해서 되면 다행입니다. 4번째가 되면 서서히 서서히 모여왔다는 인상.
  • 원래 제목 : htps //w w. 꺄gぇ. 코 m / c / 호세 - p 리세 s - d d
  • 참고로 한 기사: h tps : // / ぉ- 키요시. 코 m/2018/12/17/포 st-1003/

  • 오늘 작업



    결손치 보완



    전회까지 했던 것은, 「결손값을 포함한 index를 배열로 취득한다」라고 하는 녀석이었습니다.
    (그러고 보니 "python은 배열의 개념이 다양하고 귀찮다"는 것을 흐리게 생각합니다)
    # データ型に応じて欠損値を補完する
    # floatの場合は0
    # objectの場合は'NA'
    na_float_cols = alldata[na_col_list].dtypes[alldata[na_col_list].dtypes=='float64'].index.tolist() #float64
    na_obj_cols = alldata[na_col_list].dtypes[alldata[na_col_list].dtypes=='object'].index.tolist() #object
    # float64型で欠損している場合は0を代入
    for na_float_col in na_float_cols:
        alldata.loc[alldata[na_float_col].isnull(),na_float_col] = 0.0
    # object型で欠損している場合は'NA'を代入
    for na_obj_col in na_obj_cols:
        alldata.loc[alldata[na_obj_col].isnull(),na_obj_col] = 'NA'
    

    수치형으로 결측치를 가지는 index들



    ※이것의 자세한 것은 제3회에서 했으므로 할애.
    alldata[na_col_list].dtypes[alldata[na_col_list].dtypes=='float64'].index.tolist()

    범주형 변수에서 누락된 값을 가진 인덱스



    ※이것의 자세한 것은 제3회에서 한 녀석과 거의 같기 때문에 할애.
    alldata[na_col_list].dtypes[alldata[na_col_list].dtypes=='object'].index.tolist()

    수치형의 결손치를 대입


    for na_float_col in na_float_cols:
        alldata.loc[alldata[na_float_col].isnull(),na_float_col] = 0.0
    

    이번에도 반복 for for에 대해



    이번에 for에 대해 제대로 읽어 본다. PHP로 기술하는 것과 변수와 객체의 순서가 역(말하는 방법 올바른지 불명)이군요.
    * for에 대한 참고: htps : // 우데 my. 베네세. 이. jp / 로 ゔ ぉ p 맨 t / ぇ b / py 텐 - 후 r. HTML
    * 이번 변수: no_float_col
    * 이번 반복 내의 객체 : no_float_cols

    끈질긴하지만.isnull()


    na_float_colalldata[na_float_col] 를 출력해 본다. 내용을 우선 보는 것은, 반복 처리의 동작 확인을 하는데 있어서의 철판이군요.
  • na_float_col 의 1회째
    「결손치가 포함되는 index」의 명칭이 나오네요.
  • alldata[na_float_col] 의 1회째
    「결손치가 포함되는 index」의 값의 배열이 나오네요.
  • .isnull() 결과isnull() 를 사용하여 각 값이 null인지 여부를 결정합니다.alldata[na_float_col].isnull() 출력

  • .loc 정보


    alldata.loc[alldata[na_float_col].isnull(),na_float_col]* .log : 아무래도 행렬적으로, 행·열로 값을 보거나 출력하는 데 사용할 수 있는 모습
    * .loc 참조 : h tps : //에서. 응 kmk. 메 / py-ten-panda s-o-t-a-t-c-i-c /
    * alldata.loc[alldata[na_float_col].isnull(),na_float_col] 출력 결과


    누락 값에 값 설정



    행렬적으로 지정하고, 결측값의 곳에만 「0.0」을 넣는다.alldata.loc[alldata[na_float_col].isnull(),na_float_col] = 0.0

    범주형 변수의 누락 값 보완



    ※ 거의 같기 때문에 할애합니다.

    누락 값 보완 결과



    1개씩의 항목은 너무 미세해서 볼 수 없지만, 이것으로 갈 수 있을 것이다.
    alldata의 출력 결과


    범주형 변수 더미화



    을 하려고 했는데 시간이 다 되었기 때문에, 「카테고리 칼 변수의 더미화」의 예습으로 해 끝내고 싶습니다. 분석할 수 있다 그래야 수치화하는 느낌? . . ?
  • 더미 변수 참고: h tps : // 마르 케지네. jp / arc c / 싶은 l / 20790

  • 끝.



    결손치의 보완,, 생각보다 읽어내는데 시간이 걸려 버렸습니다. 이것이 1행에 처리를 무엇이든 채우는 Python의 함정이라면(된다면 함정이라도 아무것도 없어지면 됩니다만).

    이제 실제 처리가 다가오고 입고 있는 냄새가 와서 두근두근 해 옵니다.

    좋은 웹페이지 즐겨찾기